Skip to main content

Linux - команда Unix: bash

Удобная работа в Bash, ч.1 (Июнь 2026)

Удобная работа в Bash, ч.1 (Июнь 2026)
Anonim

Команда Linux удар являетсяш-компонентный интерпретатор языка команд, который выполняет команды, считанные со стандартного ввода или из файла.удар также включает полезные функции из оболочек Korn и C (КШ а такжеCSH).

Параметры Bash

В дополнение к односимвольным вариантам оболочки, описанным в описаниизадавать встроенная команда,удар интерпретирует следующие параметры при его вызове:

  • строка: Если параметр присутствует, тогда команды считываются из строка , Если есть аргументы после строка , они присваиваются позиционным параметрам, начиная с$0.
  • : Если опция присутствует, оболочка интерактивный .
  • -l: Делатьудар действовать так, как если бы он был вызван в качестве оболочки входа.
  • : Если опция присутствует, оболочка становится ограничено.
  • -s: Если-s параметр присутствует, или если после обработки параметров не осталось аргументов, тогда команды считываются со стандартного ввода. Эта опция позволяет устанавливать позиционные параметры при вызове интерактивной оболочки.
  • -D: Список всех строк с двойными кавычками, которым предшествует$ печатается на стандартном выходе. Это строки, которые подвержены языковому переводу, когда текущий язык не являетсяС или жеPOSIX, Это подразумевает:N вариант; никакие команды не будут выполнены.
  • - + O shopt_option : shopt_option является одним из вариантов оболочки, принятыхshopt встроенный. Если shopt_option настоящее, устанавливает значение этого параметра и+ O заставляет его отказаться. Если shopt_option не указывается, имена и значения параметров оболочки, принятыеshopt печатаются на стандартном выходе. Если опция вызова + O, вывод отображается в формате, который может быть повторно использован как вход.
  • --: -- сигнализирует о завершении опций и отключает дальнейшую обработку параметров. Любые аргументы после-- рассматриваются как имена файлов и аргументы. Аргумент- эквивалентно--.

удар также интерпретирует несколько многосимвольных опций. Эти параметры должны отображаться в командной строке перед распознаванием односимвольных опций:

  • --dump-по-строк: Эквивалентно-D, но выход находится в GNU Gettext ро (переносного объекта).
  • --dump-строки: Эквивалентно-D.
  • --Помогите: Отобразить сообщение об использовании на стандартном выходе и успешно выйти.
  • --init-файл: файл а также --rcfile файл : Выполнять команды из файл вместо стандартного файла личной инициализации ~ / .Bashrc если оболочка является интерактивной.
  • --авторизоваться: Эквивалентно-l.
  • --noediting: Не используйте GNUReadline библиотека для чтения командных строк, когда оболочка является интерактивной.
  • --noprofile: Не читать системный файл автозагрузки / И т.д. / профиль или любые личные файлы инициализации ~ / .Bash_profile , ~ / .Bash_login , или же ~ / .Profile , По умолчанию,удар читает эти файлы, когда он вызывается в качестве оболочки входа.
  • --norc: Не читать и выполнять личный файл инициализации ~ / .Bashrc если оболочка является интерактивной. Этот параметр включен по умолчанию, если оболочка вызывается какш.
  • --posix: Изменить поведениеудар где операция по умолчанию отличается от стандарта POSIX, чтобы соответствовать стандарту ( режим posix ).
  • --restricted: Оболочка становится ограниченной.
  • --rpm-требует: Создайте список файлов, необходимых для запуска сценария оболочки. Это подразумевает «-n» и подвержено тем же ограничениям, что и проверка проверки времени компиляции; Backticks, тесты и оценки не анализируются, поэтому некоторые зависимости могут быть пропущены.
  • --подробный: Эквивалентно-v.
  • --версия: Показывать информацию о версии для этого экземпляраудар на стандартном выходе и выходе успешно.

аргументы

Если аргументы остаются после обработки опций, и ни ни-s option, первый аргумент считается именем файла, содержащего команды оболочки. Если удар вызывается таким образом,$0 устанавливается на имя файла, а позиционные параметры - на остальные аргументы.удар читает и выполняет команды из этого файла; затем выходит.ударСтатус выхода - это статус выхода последней команды, выполняемой в скрипте. Если никакие команды не выполняются, статус выхода равен 0. Сначала делается попытка открыть файл в текущем каталоге, а если файл не найден, то оболочка ищет каталоги вДОРОЖКА для скрипта.

мольба

оболочка входа это тот, чей первый символ аргумента нуль является-, или один начался с--авторизоваться вариант.

интерактивный shell запускается без аргументов без опционов и без вариант, стандартный ввод и вывод которого соединены с терминалами, как определено isatty (3), или один начался с вариант.PS1 установлен и $- включает, если bash является интерактивным, позволяя сценарию оболочки или файлу запуска проверять это состояние.

В следующих параграфах описывается, какудар выполняет свои файлы запуска. Если какой-либо из файлов существует, но не может быть прочитан,удар сообщает об ошибке. Тильды расширены в именах файлов, как описано в Tilde Expansion.

когдаудар вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с--авторизоваться , он сначала считывает и выполняет команды из файла / И т.д. / профиль , если этот файл существует. После прочтения этого файла он ищет ~ / .Bash_profile , ~ / .Bash_login , а также ~ / .Profile , в этом порядке и считывает и выполняет команды из первого, который существует и читается.--noprofile параметр может использоваться, когда оболочка начинает блокировать это поведение.

Когда оболочка входа завершается,удар считывает и выполняет команды из файла ~ / .Bash_logout , если он существует.

Когда запущена интерактивная оболочка, не являющаяся оболочкой входа,удар считывает и выполняет команды из ~ / .Bashrc , если этот файл существует. Это может быть заблокировано с помощью--norc вариант.--rcfile файл вариант заставитудар читать и выполнять команды из файл вместо ~ / .Bashrc .

когдаудар запускается неинтерактивно - для запуска сценария оболочки, например, - он ищет переменнуюBASH_ENV в среде, расширяет свое значение, если оно появляется там, и использует расширенное значение в качестве имени файла для чтения и выполнения.удар ведет себя так, как если бы выполнялась следующая команда:

если -n "$ BASH_ENV"; затем . "$ BASH_ENV"; фи

но значениеДОРОЖКА переменная не используется для поиска имени файла.

Еслиудар вызывается с именемш, он пытается имитировать начальное поведение исторических версийш насколько это возможно, хотя и соответствует стандарту POSIX. При вызове как интерактивной оболочки входа или неинтерактивной оболочки с--авторизоваться , он сначала пытается прочитать и выполнить команды из / И т.д. / профиль а также ~ / .Profile , в этой последовательности.--noprofile вариант может использоваться для подавления такого поведения. При вызове в качестве интерактивной оболочки с именем ш, удар ищет переменнуюENV, расширяет свое значение, если оно определено, и использует расширенное значение как имя файла для чтения и выполнения. Поскольку оболочка вызвана какш не пытается читать и выполнять команды из любых других файлов запуска,--rcfile опция не действует. Неинтерактивная оболочка, вызываемая именемш не пытается прочитать другие файлы запуска. При вызове какш, удар входит POSIX после чтения файлов запуска.

когдаудар запускается в POSIX режиме, как в случае--posix командной строки, он соответствует стандарту POSIX для файлов запуска. В этом режиме интерактивные оболочки расширяютENV переменная и команды считываются и выполняются из файла, чье имя является расширенным значением. Никаких других загрузочных файлов не читается.

удар пытается определить, когда он запускается удаленным демонами оболочки, обычно РСХД , Если удар определяет, что он управляется РСХД , он считывает и выполняет команды из ~ / .Bashrc , если этот файл существует и доступен для чтения. Он не будет делать этого, если будет вызван какш,--norc вариант может использоваться для подавления этого поведения, и--rcfile параметр может использоваться для принудительного чтения другого файла, но РСХД обычно не вызывает оболочку с этими параметрами или позволяет их указывать.

Если оболочка запускается с эффективным идентификатором пользователя (группы), не равным идентификатору реального пользователя (группы), а-п опция не предоставляется, файлы запуска не читаются, функции оболочки не наследуются от среды,SHELLOPTS переменная, если она появляется в среде, игнорируется, а действительный идентификатор пользователя устанавливается на настоящий идентификатор пользователя. Если-п опция предоставляется при вызове, поведение запуска одинаково, но эффективный идентификатор пользователя не сбрасывается.

Определения

В остальной части этого документа используются следующие определения:

  • пустой: Пространство или вкладка.
  • слово: Последовательность символов, рассматриваемых оболочкой как единое целое. Также известен как знак.
  • название: слово состоящий только из буквенно-цифровых символов и символов подчеркивания и начинающийся с буквенного символа или подчеркивания. Также упоминается какидентификатор.
  • Метасимвол: Символ, который при некорректности разделяет слова. Одно из следующего:| &; () <> пробел
  • Управляющий оператор: A знак который выполняет функцию управления. Это один из следующих символов: || & && ; ;; ( ) |

Зарезервированные слова

Зарезервированные слова это слова, которые имеют особое значение для оболочки. Следующие слова распознаются как зарезервированные при некотировании и либо первое слово простой команды, либо третье словоделоили жеза команда:

! case do done elif else esac fi для функции, если в select затем до while {} time

Грамматика Шесть: Простые команды

простая команда представляет собой последовательность необязательных переменных, за которыми следуютпустой-раздельные слова и переадресации и оператор управления , Первое слово указывает команду, которая должна быть выполнена, и передается как аргумент нуль. Остальные слова передаются в качестве аргументов вызываемой команды.

Возвращаемое значение простая команда это его статус выхода или 128 + N если команда завершена сигналом N .

Трубопроводы

трубопровод представляет собой последовательность из одной или нескольких команд, разделенных символом|, Формат для конвейера - время -п ! команда | command2 … .

Стандартный выход команда подключается через трубу к стандартному входу command2 , Это соединение выполняется перед любыми перенаправлениями, указанными в команде.

Если зарезервированное слово! предшествует конвейеру, статус выхода этого конвейера является логическим NOT статуса выхода последней команды. В противном случае статус конвейера является статусом выхода последней команды. Оболочка ждет завершения всех команд в конвейере перед возвратом значения.

Есливремя зарезервированное слово предшествует конвейеру, истекшее, а также время пользователя и системы, затраченное на его выполнение, сообщаются, когда конвейер завершается.-п опция изменяет формат вывода на указанный в POSIX.TIMEFORMAT переменная может быть установлена ​​в строку формата, которая указывает, как должна отображаться информация о времени.

Каждая команда в конвейере выполняется как отдельный процесс (например, в подоболочке).

Списки

список представляет собой последовательность одного или нескольких трубопроводов, разделенных одним из операторов;, &, &&, или же||, и необязательно завершается одним из;, &, или же.

Из этих операторов списка,&& а также|| имеют равный приоритет, за которым следует; а также&, которые имеют одинаковый приоритет.

Последовательность одной или нескольких строк новой строки может отображаться в список вместо точки с запятой, чтобы разграничить команды.

Если команда завершена оператором управления&, оболочка выполняет команду в фон в подоболочке. Оболочка не ждет завершения команды, а статус возврата - 0. Команды, разделенные; выполняются последовательно; оболочка ожидает, что каждая команда будет завершена по очереди. Статус возврата - это статус выхода последней выполненной команды.

Операторы управления&& а также|| обозначают списки И и списки ИЛИ соответственно. Список AND имеет форму

command1 && command2

command2 выполняется, если и только если, command1 возвращает статус выхода 0.

Список OR имеет форму

command1 || command2

command2 выполняется тогда и только тогда, когда command1 возвращает ненулевой статус выхода. Возвращаемым статусом списков AND и OR является статус выхода последней команды, выполненной в списке.

Составные команды

составная команда является одним из следующих:

(список) : список выполняется в подоболочке. Переменные назначения и встроенные команды, которые влияют на среду оболочки, не остаются в силе после завершения команды. Статус возврата - это статус выхода список .

{list; } : список просто выполняется в текущей среде оболочки. список должен быть завершен символом новой строки или точкой с запятой. Это называется групповая команда , Статус возврата - это статус выхода список , Обратите внимание, что в отличие от метасимволов( а также), { а также} являются зарезервированные слова и должно происходить, когда зарезервированное слово разрешено распознавать. Поскольку они не вызывают прерывания слова, они должны быть отделены от список по пробелам.

((Выражение)) : выражение оценивается в соответствии с правилами, описанными в Арифметическая оценка. Если значение выражения не равно нулю, статус возврата равен 0; в противном случае статус возврата равен 1. Это в точности эквивалентнопозволять ' выражение '.

выражение : Вернуть статус 0 или 1 в зависимости от оценки условного выражения выражение , Выражения состоят из праймериз, описанных ниже Условные выражения. Разделение слов и расширение имени пути не выполняются над словами между а также; расширение тильды, расширение параметров и переменных, арифметическое расширение, подстановка команд, замещение процессов и удаление цитат.

Когда== а также!= используются операторы, строка справа от оператора считается шаблоном и согласована в соответствии с правилами, описанными вСоответствие шаблону, Возвращаемое значение равно 0, если строка соответствует или не соответствует шаблону, соответственно, и 1 в противном случае. Любая часть шаблона может быть процитирована, чтобы заставить ее соответствовать строке.

Выражения могут быть объединены с использованием следующих операторов, перечисленных в порядке убывания приоритета:

  • (выражение): возвращает значение выражение , Это может быть использовано для переопределения обычного приоритета операторов.
  • ! expressio п: Правда, если выражение false.
  • выражение1 && выражения2 : Правда, если оба выражение1 а также выражения2 являются истинными.
  • выражение1 || выражения2 : Истина, если выражение1 или же выражения2 правда.

&& а также|| операторы не оценивают выражения2 если значение выражение1 достаточно для определения возвращаемого значения всего условного выражения.

  • за название в слово ; делать список ; сделанный: Список слов, следующих зав расширяется, генерируя список элементов. Переменная название по очереди устанавливается каждый элемент этого списка и список выполняется каждый раз. Еслив слово опущено,за команда выполняет список один раз для каждого установленного параметра позиционирования. Статус возврата - это статус выхода последней выполняемой команды. Если расширение позицийв приводит к пустому списку, никакие команды не выполняются, а статус возврата равен 0.
  • за (( выражение1 ; expr2 ; expr3 )) ; делать список ; сделанный: Во-первых, арифметическое выражение выражение1 оценивается в соответствии с правилами, описанными вАрифметическая оценка. Арифметическое выражение expr2 затем оценивается повторно до тех пор, пока он не достигнет нуля. Каждый раз expr2 оценивает ненулевое значение, список выполняется и арифметическое выражение expr3 оценивается. Если какое-либо выражение опущено, оно ведет себя так, как будто оно равно 1. Возвращаемое значение - это статус выхода последней команды в список который выполняется, или false, если какое-либо из выражений недействительно.
  • Выбрать название в слово ; делать список ; сделанный: Список следующих словв расширяется, генерируя список элементов. Набор расширенных слов печатается по стандартной ошибке, каждая из которых предшествует номеру. Еслив слово опускается, позиционные параметры печатаются. PS3 затем отображается строка, и строка считывается со стандартного ввода. Если строка состоит из числа, соответствующего одному из отображаемых слов, то значение название устанавливается на это слово. Если строка пуста, слова и подсказки отображаются снова. Если EOF считывается, команда завершается. Любое другое значение считывает причины название для значения null. Чтение строки сохраняется в переменнойОТВЕТИТЬ, список выполняется после каждого выбора до тех пор, покаперерыв команда выполнена. Статус выходаВыбрать является статусом выхода последней команды, выполненной в список , или ноль, если команды не были выполнены.
  • дело слово в ( шаблон | шаблон : Aдело команда сначала расширяется слово , и пытается сопоставить его с каждым шаблон в свою очередь, используя те же правила согласования, что и для расширения пути. Когда совпадение найдено, соответствующий список выполняется. После первого матча никакие последующие матчи не предпринимаются. Статус выхода равен нулю, если шаблон не совпадает. В противном случае это статус выхода последней команды, выполненной в список .
  • если список ; затем список; а также Элиф список ; затем список ; … еще список ; фи: если список выполняется. Если его статус выхода равен нулю,затем список выполняется. В противном случае каждый Элиф список выполняется в свою очередь, и если его статус выхода равен нулю, соответствующийзатем список выполняется и команда завершается. В противном случаееще список выполняется, если присутствует. Статус выхода - это статус выхода последней выполненной команды или ноль, если условие не проверено.
  • в то время как список ; делать список ; сделанный а также до тех пор список ; делать список ; сделанный:в то время как команда непрерывно выполняетделать список до тех пор, пока последняя команда в список возвращает статус выхода 0.до тех пор команда идентичнав то время как за исключением того, что тест отрицается;делать список выполняется до тех пор, пока последняя команда в список возвращает ненулевой статус выхода. Статус выходав то время как а такжедо тех пор команды - это статус выхода последнегоделать список команда выполнена, или ноль, если ни один не был выполнен.
  • функция название () { список ; }: Это определяет функцию с именем название , тело функции является список команд между {и}. Этот список выполняется каждый раз название указывается как имя простой команды. Статус выхода функции - это статус выхода последней команды, выполненной в теле.

Комментарии

В неинтерактивной оболочке или интерактивной оболочке, в которой interactive_comments вариант дляshopt builtin включен, слово, начинающееся с# вызывает игнорирование слова и всех остальных символов в этой строке. Интерактивная оболочка безinteractive_comments опция enabled не позволяет комментировать. interactive_comments опция включена по умолчанию в интерактивных оболочках.

квотирование

квотирование используется для удаления специального значения определенных символов или слов в оболочке. Цитирование может использоваться для отключения специальной обработки для специальных символов, для предотвращения сохранения зарезервированных слов как таковых и предотвращения расширения параметров.

Каждый из метасимволы перечисленных вышеОпределения имеет особое значение для оболочки и должен быть указан, если он должен представлять себя.

Когда используются средства расширения истории команд, расширение истории характер, обычно!, должны быть указаны для предотвращения расширения истории.

Существует три механизма цитирования: escape-символ , одинарные кавычки и двойные кавычки.

Неотображаемая обратная косая черта () это escape-символ , Он сохраняет буквальное значение следующего символа, следующего за ним, за исключением , Если пара, и обратная косая черта сама не цитируется, рассматривается как продолжение строки (т. е. удаляется из входного потока и эффективно игнорируется).

Вложения символов в одинарных кавычках сохраняют буквальное значение каждого символа в кавычках. Одинарная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта.

Вложение символов в двойные кавычки сохраняет буквальное значение всех символов в кавычках, за исключением$, ', а также, Персонажи$ а также' сохраняют свое особое значение в двойных кавычках. Обратная косая черта сохраняет свое особое значение только тогда, когда следует один из следующих символов:$, ', ', , или же, Двойная кавычка может быть заключена в двойные кавычки, предшествуя ей обратным слэшем.

Специальные параметры* а также@ имеют особое значение, когда в двойных кавычках.

Слова формы$' строка »рассматриваются специально. Слово расширяется до строка , с замененными обратными слэшами символами, указанными в стандарте ANSI C. Последующие последовательности обратной косой черты, если они имеются, декодируются следующим образом:

  • а: предупреждение (звонок)
  • б: backspace
  • е: escape-символ
  • е: подать форму
  • п: новая линия
  • р: возврат каретки
  • т: горизонтальная вкладка
  • v: вертикальная вкладка
  • \: обратная косая черта
  • ': одиночная кавычка
  • NNN : восьмибитовый символ, значением которого является восьмеричное значение NNN (от одной до трех цифр)
  • Икс HH : восьмибитовый символ, значение которого является шестнадцатеричным значением HH (одна или две шестнадцатеричные цифры)
  • с Икс : Икс персонаж

Расширенный результат одинарный, как будто знак доллара не присутствовал.

Строка с двойными кавычками, которой предшествует знак доллара ($) приведет к тому, что строка будет переведена в соответствии с текущей локалью. Если текущий языкС или жеPOSIX, знак доллара игнорируется. Если строка переводится и заменяется, замена выполняется двойным образом.

параметры

параметр это объект, который хранит значения. Это может быть название , номер или один из специальных символов, перечисленных вСпециальные параметры, Для целей оболочки, переменная является параметром, обозначаемым название , Переменная имеет значение и ноль или более атрибуты , Атрибуты назначаются с помощьюобъявлять встроенная команда.

Параметр устанавливается, если ему присвоено значение. Нулевая строка является допустимым значением. Как только переменная установлена, она может быть отменена только с помощьюснята с охраны встроенная команда.

переменная может быть назначено с помощью формулировки формы: название = значение

Если значение не задано, переменной присваивается пустая строка. Все ценности подвергаются расширению тильды, расширению параметров и переменных, замене команд, арифметическому расширению и удалению цитат. Если переменная имеетцелое число набора атрибутов, тогда значение подлежит арифметическому расширению, даже если расширение $ ((…)) не используется. Разделение слов не выполняется, за исключением'$@' как объяснено вСпециальные параметры, Расширение имени пути не выполняется. Операторы присваивания могут также отображаться в качестве аргументовобъявлять, верстать, экспорт, только для чтения, а также местный встроенные команды.

Позиционные параметры

позиционный параметр - это параметр, обозначенный одной или несколькими цифрами, отличными от одной цифры 0. Позиционные параметры назначаются из аргументов оболочки при ее вызове и могут быть переназначены с использованиемзадавать встроенная команда. Позиционные параметры не могут присваиваться операторам присваивания. Позиционные параметры временно заменяются при выполнении функции оболочки.

Когда расширенный позиционный параметр, состоящий из более чем одной цифры, должен быть заключен в фигурные скобки.

Специальные параметры

Оболочка рассматривает несколько параметров специально. К этим параметрам можно отнести только ссылки; присвоение им не допускается.

  • *: Расширяется до позиционных параметров, начиная с одного. Когда расширение происходит в двойных кавычках, оно расширяется до одного слова со значением каждого параметра, разделенным первым символомIFS специальная переменная. То есть, "$*" эквивалентно "$1 с $2 с ", где с является первым символом значенияIFS переменная. ЕслиIFS не задано, параметры разделяются пробелами. ЕслиIFS имеет значение null, параметры объединяются без промежуточных разделителей.
  • @: Расширяется до позиционных параметров, начиная с одного. Когда расширение происходит в двойных кавычках, каждый параметр расширяется до отдельного слова. То есть, "$@" эквивалентно "$1' '$2«… Если нет позиционных параметров»,$@" а также$@расширяться до нуля (они удаляются).
  • #: Увеличивается до числа позиционных параметров в десятичной системе.
  • ?: Расширяется до статуса последнего выполненного переднего плана.
  • -: Расширяется до текущих флажков опций, указанных при вызове,задавать встроенная команда или те, которые установлены самой оболочкой, такие как вариант.
  • $: Расширяется до идентификатора процесса оболочки. В () подоболочке она расширяется до идентификатора процесса текущей оболочки, а не подоболочки.
  • !: Расширяется до идентификатора процесса последней выполненной фоновой (асинхронной) команды.
  • 0: Расширяется до имени оболочки или сценария оболочки. Это устанавливается при инициализации оболочки. Еслиудар вызывается с файлом команд,$0 устанавливается на имя этого файла. Еслиудар начинается с вариант, тогда$0 задается первым аргументом после строки, которая должна быть выполнена, если таковая присутствует. В противном случае он будет установлен на имя файла, используемого для вызоваудар, как задано аргументом 0.
  • _: При запуске оболочки задайте абсолютное имя файла оболочки или сценария оболочки, выполняемого как переданное в списке аргументов. Впоследствии он расширяется до последнего аргумента предыдущей команды после расширения. Также задано полное имя файла каждой выполняемой команды и помещено в среду, экспортированную в эту команду. При проверке почты этот параметр содержит имя проверяемого почтового файла.

Переменные оболочки

Следующие переменные задаются оболочкой:

BASH: Расширяется до полного имени файла, используемого для вызова этого экземпляраудар.

BASH_VERSINFO: Переменная массива readonly, члены которой содержат информацию о версии для этого экземпляра удар, Значения, назначенные членам массива, следующие:

  • BASH_VERSINFO 0: основной номер версии ( релиз )
  • BASH_VERSINFO 1: младший номер версии ( версия )
  • BASH_VERSINFO 2: уровень патча
  • BASH_VERSINFO 3: версия сборки
  • BASH_VERSINFO 4: статус освобождения ( бета1, например)
  • BASH_VERSINFO 5: значениеMACHTYPE

BASH_VERSION: Расширяется до строки, описывающей версию этого экземпляраудар.

COMP_CWORD: Индекс в$ {COMP_WORDS} слова, содержащего текущую позицию курсора. Эта переменная доступна только в функциях оболочки, вызванных программируемыми средствами завершения.

COMP_LINE: Текущая командная строка. Эта переменная доступна только в функциях оболочки и внешних командах, вызываемых программируемыми средствами завершения.

COMP_POINT: Индекс текущей позиции курсора относительно начала текущей команды. Если текущая позиция курсора находится в конце текущей команды, значение этой переменной равно$ {# COMP_LINE}, Эта переменная доступна только в функциях оболочки и внешних командах, вызываемых программируемыми средствами завершения.

COMP_WORDS: Переменная массива, состоящая из отдельных слов в текущей командной строке. Эта переменная доступна только в функциях оболочки, вызванных программируемыми средствами завершения.

DIRSTACK: Переменная массива, содержащая текущее содержимое стека каталога. Каталоги отображаются в стеке в том порядке, в котором они отображаютсякаталоги встроенный. Присвоение членам этой переменной массива может использоваться для изменения каталогов уже в стеке, ноPushd а такжеPOPD встроенные должны использоваться для добавления и удаления каталогов. Присвоение этой переменной не изменит текущий каталог. ЕслиDIRSTACK не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

EUID: Расширяется до эффективного идентификатора пользователя текущего пользователя, инициализированного при запуске оболочки. Эта переменная является только для чтения.

имя_функции: Имя любой выполняющейся в данный момент функции оболочки. Эта переменная существует только при выполнении функции оболочки. Заданияимя_функции не имеют эффекта и возвращают статус ошибки. Еслиимя_функции не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

ГРУППЫ: Переменная массива, содержащая список групп, членом которых является текущий пользователь. ЗаданияГРУППЫ не имеют эффекта и возвращают статус ошибки. ЕслиГРУППЫ не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

HISTCMD: Номер истории или индекс в списке истории текущей команды. ЕслиHISTCMD не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

HOSTNAME: Автоматически назначается имя текущего хоста.

HOSTTYPE: Автоматически устанавливает строку, которая однозначно описывает тип машины, на которойудар выполняет. Значение по умолчанию зависит от системы.

LINENO: Каждый раз, когда этот параметр ссылается, оболочка заменяет десятичное число, представляющее текущий номер последовательной строки (начиная с 1) внутри скрипта или функции. Если нет в скрипте или функции, значение, замененное не гарантировано. ЕслиLINENO не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

MACHTYPE: Автоматически устанавливает строку, полностью описывающую тип системы, на которойудар выполняется в стандартном GNU CPU-компания-система формат. Значение по умолчанию зависит от системы.

OLDPWD: Предыдущий рабочий каталог, заданныйCD команда.

OPTARG: Значение последнего аргумента параметра, обрабатываемогоgetopts встроенная команда.

OPTIND: Индекс следующего аргумента, который должен обрабатыватьсяgetopts встроенная команда.

OSTYPE: Автоматически устанавливает строку, описывающую операционную систему, на которойудар выполняет. Значение по умолчанию зависит от системы.

PIPESTATUS: Переменная массива, содержащая список значений статуса выхода из процессов в наиболее недавно выполненном конвейере переднего плана, который может содержать только одну команду.

PPID: Идентификатор процесса родителя оболочки. Эта переменная является только для чтения.

PWD: Текущий рабочий каталог, заданныйCD команда.

RANDOM: Каждый раз, когда этот параметр ссылается, генерируется случайное целое число от 0 до 32767. Последовательность случайных чисел может быть инициализирована путем присвоения значения RANDOM, ЕслиRANDOM не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается.

ОТВЕТИТЬ: Установите на строку ввода, считаннуючитать встроенная команда, когда аргументы не