Переменные Bash
Эти переменные задаются или используются Bash, но другие оболочки обычно не рассматривают их как специальные.
Некоторые переменные, используемые Bash, описаны в других главах: переменные для управления средствами управления заданиями (см. Переменные управления заданиями).
-
_ -
($_, знак подчёркивания.) Эта переменная имеет несколько значений в зависимости от контекста. При запуске оболочки $_ устанавливается в путь, использованный для вызова оболочки или выполняемого сценария оболочки, переданный в окружении или списке аргументов. В дальнейшем она раскрывается в последний аргумент предыдущей простой команды, выполненной на переднем плане, после раскрытия. Также ей присваивается полный путь, использованный для вызова каждой выполняемой команды, и она помещается в окружение, экспортируемое этой команде. При проверке почты $_ раскрывается в имя файла почты.
-
BASH -
Полный путь, использованный для выполнения текущего экземпляра Bash.
-
BASHOPTS -
Список включённых параметров оболочки, разделённых двоеточиями. Каждое слово в списке является допустимым аргументом параметра -s встроенной команды
shopt(см. Встроенная команда Shopt). Параметры, перечисленные вBASHOPTS, — это те, для которых команда ‘shopt’ выводит значение ‘on’. Если эта переменная присутствует в окружении при запуске Bash, оболочка включает каждый параметр из списка до чтения любых файлов запуска. Если эта переменная экспортирована, дочерние оболочки включат каждый параметр из списка. Эта переменная доступна только для чтения. -
BASHPID -
Раскрывается в идентификатор процесса ID текущего процесса Bash. При определённых обстоятельствах это значение отличается от
$$, например во вложенных оболочках, для которых не требуется повторная инициализация Bash. ПрисваиванияBASHPIDне влияют на её значение. ЕслиBASHPIDсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_ALIASES -
Ассоциативная переменная-массив, элементы которой соответствуют внутреннему списку псевдонимов, поддерживаемому встроенной командой
alias(см. Встроенные команды оболочки Bourne). Элементы, добавленные в этот массив, появляются в списке псевдонимов; однако сброс элементов массива в настоящее время не приводит к удалению псевдонимов из списка. ЕслиBASH_ALIASESсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_ARGC -
Переменная-массив, значения которой представляют собой количество параметров в каждом кадре текущего стека вызовов Bash. Количество параметров текущей подпрограммы (функции оболочки или сценария, выполняемого с помощью
.илиsource) находится на вершине стека. При выполнении подпрограммы количество переданных параметров помещается вBASH_ARGC. Оболочка задаётBASH_ARGCтолько в режиме расширенной отладки (описание параметраextdebugвстроенной командыshoptсм. в разделе Встроенная команда Shopt). Установкаextdebugпосле того, как оболочка начала выполнение подпрограммы, или обращение к этой переменной, когдаextdebugне задана, может привести к несогласованным значениям. ПрисваиванияBASH_ARGCне влияют на её значение, и её нельзя сбросить. -
BASH_ARGV -
Переменная-массив, содержащая все параметры в текущем стеке вызовов Bash. Последний параметр последнего вызова подпрограммы находится на вершине стека; первый параметр начального вызова — внизу. При выполнении подпрограммы оболочка помещает переданные параметры в
BASH_ARGV. Оболочка задаётBASH_ARGVтолько в режиме расширенной отладки (описание параметраextdebugвстроенной командыshoptсм. в разделе Встроенная команда Shopt). Установкаextdebugпосле того, как оболочка начала выполнение сценария, или обращение к этой переменной, когдаextdebugне задана, может привести к несогласованным значениям. ПрисваиванияBASH_ARGVне влияют на её значение, и её нельзя сбросить. -
BASH_ARGV0 -
При обращении эта переменная раскрывается в имя оболочки или сценария оболочки (совпадает с
$0; описание специального параметра 0 см. в разделе Специальные параметры). Присваивание значенияBASH_ARGV0устанавливает$0в то же значение. ЕслиBASH_ARGV0сброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_CMDS -
Ассоциативная переменная-массив, элементы которой соответствуют внутренней хеш-таблице команд, поддерживаемой встроенной командой
hash(см. Встроенные команды оболочки Bourne). Добавление элементов в этот массив помещает их в хеш-таблицу; однако сброс элементов массива в настоящее время не приводит к удалению имён команд из хеш-таблицы. ЕслиBASH_CMDSсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_COMMAND -
Раскрывается в команду, которая выполняется в данный момент или будет выполнена, если только оболочка не выполняет команду в результате ловушки; в этом случае это команда, выполнявшаяся в момент срабатывания ловушки. Если
BASH_COMMANDсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_COMPAT -
Это значение используется для установки уровня совместимости оболочки. Описание различных уровней совместимости и их эффектов см. в разделе Режим совместимости оболочки. Значением может быть десятичное число (например, 4.2) или целое число (например, 42), соответствующее желаемому уровню совместимости. Если
BASH_COMPATсброшена или задана как пустая строка, уровень совместимости устанавливается в значение по умолчанию для текущей версии. ЕслиBASH_COMPATзадана значением, которое не является одним из допустимых уровней совместимости, оболочка выводит сообщение об ошибке и устанавливает уровень совместимости по умолчанию для текущей версии. Подмножество допустимых значений соответствует описанным ниже уровням совместимости (см. Режим совместимости оболочки). Например, 4.2 и 42 — допустимые значения, соответствующие параметруcompat42shoptи устанавливающие уровень совместимости 42. Текущая версия также является допустимым значением. -
BASH_ENV -
Если эта переменная задана при вызове Bash для выполнения сценария оболочки, её значение раскрывается и используется как имя файла запуска, который нужно прочитать перед выполнением сценария. Bash не использует
PATHдля поиска результирующего имени файла. См. Файлы запуска Bash. -
BASH_EXECUTION_STRING -
Аргумент-команда параметра вызова -c.
-
BASH_LINENO -
Переменная-массив, элементы которой представляют собой номера строк в исходных файлах, где был вызван соответствующий элемент
FUNCNAME.${BASH_LINENO[$i]}— это номер строки в исходном файле (${BASH_SOURCE[$i+1]}), где был вызван${FUNCNAME[$i]}(или${BASH_LINENO[$i-1]}, если обращение произошло внутри другой функции оболочки). ИспользуйтеLINENO, чтобы получить текущий номер строки. ПрисваиванияBASH_LINENOне влияют на её значение, и её нельзя сбросить. -
BASH_LOADABLES_PATH -
Список каталогов, разделённых двоеточиями, в которых команда
enableищет динамически загружаемые встроенные команды. -
BASH_MONOSECONDS -
При каждом обращении к этой переменной она раскрывается в значение, возвращаемое монотонными часами системы, если они доступны. Если монотонные часы недоступны, это эквивалентно
EPOCHSECONDS. ЕслиBASH_MONOSECONDSсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_REMATCH -
Переменная-массив, элементы которой присваиваются бинарным оператором ‘=~’ условной команде
[[(см. Условные конструкции). Элемент с индексом 0 содержит часть строки, соответствующую всему регулярному выражению. Элемент с индексом n содержит часть строки, соответствующую n-му подвыражению в скобках. -
BASH_SOURCE -
Переменная-массив, элементы которой содержат имена исходных файлов, где определены соответствующие имена функций оболочки из переменной-массива
FUNCNAME. Функция оболочки${FUNCNAME[$i]}определена в файле${BASH_SOURCE[$i]}и вызвана из${BASH_SOURCE[$i+1]}ПрисваиванияBASH_SOURCEне влияют на её значение, и её нельзя сбросить. -
BASH_SUBSHELL -
Увеличивается на единицу в каждой вложенной оболочке или окружении вложенной оболочки, когда оболочка начинает выполнение в этом окружении. Начальное значение — 0. Если
BASH_SUBSHELLсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
BASH_TRAPSIG -
Во время выполнения устанавливается в номер сигнала, соответствующий выполняемому действию ловушки. Информацию о номерах сигналов и выполнении ловушек см. в описании
trap(см. Встроенные команды оболочки Bourne). -
BASH_VERSINFO -
Переменная-массив, доступная только для чтения (см. Массивы), элементы которой содержат сведения о версии этого экземпляра Bash. Элементам массива присваиваются следующие значения:
BASH_VERSINFO[0]-
Номер основной версии (выпуск).
BASH_VERSINFO[1]-
Номер дополнительной версии (версия).
BASH_VERSINFO[2]-
Уровень исправлений.
BASH_VERSINFO[3]-
Версия сборки.
BASH_VERSINFO[4]-
Статус выпуска (например,
beta). BASH_VERSINFO[5]Значение
MACHTYPE.
-
BASH_VERSION -
Раскрывается в строку с описанием версии этого экземпляра Bash (например, 5.2.37(3)-release).
-
BASH_XTRACEFD -
Если задано целое число, соответствующее допустимому дескриптору файла, Bash записывает трассировочный вывод, создаваемый при включённом параметре ‘set -x’, в этот дескриптор файла, а не в стандартный поток ошибок. Это позволяет отделить трассировочный вывод от диагностических сообщений и сообщений об ошибках. Дескриптор файла закрывается, когда
BASH_XTRACEFDсбрасывается или ему присваивается новое значение. СбросBASH_XTRACEFDили присваивание ей пустой строки приводит к отправке трассировочного вывода в стандартный поток ошибок. Обратите внимание: если задатьBASH_XTRACEFDзначение 2 (дескриптор стандартного потока ошибок), а затем сбросить её, стандартный поток ошибок будет закрыт. -
CHILD_MAX -
Задаёт количество состояний завершившихся дочерних процессов, которые оболочка должна запоминать. Bash не позволяет уменьшить это значение ниже минимума, установленного POSIX, и существует максимальное значение (в настоящее время 8192), которое нельзя превышать. Минимальное значение зависит от системы.
-
COLUMNS -
Используется командой
selectдля определения ширины терминала при выводе списков выбора. Устанавливается автоматически, если включён параметрcheckwinsize(см. Встроенная команда Shopt), или в интерактивной оболочке при полученииSIGWINCH. -
COMP_CWORD -
Индекс слова в
${COMP_WORDS}, содержащего текущую позицию курсора. Эта переменная доступна только функциям оболочки, вызываемым средствами программируемого дополнения (см. Программируемое дополнение). -
COMP_KEY -
Клавиша (или последняя клавиша последовательности клавиш), использованная для вызова текущей функции дополнения. Эта переменная доступна только функциям оболочки и внешним командам, вызываемым средствами программируемого дополнения (см. Программируемое дополнение).
-
COMP_LINE -
Текущая командная строка. Эта переменная доступна только функциям оболочки и внешним командам, вызываемым средствами программируемого дополнения (см. Программируемое дополнение).
-
COMP_POINT -
Индекс текущей позиции курсора относительно начала текущей команды. Если курсор находится в конце текущей команды, значение этой переменной равно
${#COMP_LINE}. Эта переменная доступна только функциям оболочки и внешним командам, вызываемым средствами программируемого дополнения (см. Программируемое дополнение). -
COMP_TYPE -
Устанавливается в целое значение, соответствующее типу попытки дополнения, вызвавшей функцию дополнения: TAB — обычное дополнение, ‘?’ — вывод вариантов дополнения после последовательных нажатий клавиши табуляции, ‘!’ — вывод альтернатив при дополнении частичного слова, ‘@’ — вывод вариантов дополнения, если слово не изменено, или ‘%’ — меню дополнения. Эта переменная доступна только функциям оболочки и внешним командам, вызываемым средствами программируемого дополнения (см. Программируемое дополнение).
-
COMP_WORDBREAKS -
Набор символов, которые библиотека Readline считает разделителями слов при выполнении дополнения слов. Если
COMP_WORDBREAKSсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
COMP_WORDS -
Переменная-массив, состоящая из отдельных слов текущей командной строки. Строка разбивается на слова так же, как её разбила бы библиотека Readline, используя
COMP_WORDBREAKS, описанную выше. Эта переменная доступна только функциям оболочки, вызываемым средствами программируемого дополнения (см. Программируемое дополнение). -
COMPREPLY -
Переменная-массив, из которой Bash считывает возможные варианты дополнения, созданные функцией оболочки, вызываемой средством программируемого дополнения (см. Программируемое дополнение). Каждый элемент массива содержит один возможный вариант дополнения.
-
COPROC -
Переменная-массив, созданная для хранения дескрипторов файлов вывода и ввода безымянного сопрограммного процесса (см. Сопрограммные процессы).
-
DIRSTACK -
Переменная-массив, содержащая текущее содержимое стека каталогов. Каталоги отображаются в стеке в том порядке, в котором их выводит встроенная команда
dirs. Присваивание значений элементам этой переменной-массива можно использовать для изменения каталогов, уже находящихся в стеке, однако для добавления и удаления каталогов необходимо использовать встроенные командыpushdиpopd. Присваивание значения этой переменной не меняет текущий каталог. ЕслиDIRSTACKсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
EMACS -
Если Bash обнаруживает эту переменную в окружении при запуске оболочки и её значение равно ‘t’, Bash предполагает, что оболочка работает в буфере оболочки Emacs, и отключает редактирование строк.
-
ENV -
Раскрывается и выполняется аналогично
BASH_ENV(см. Файлы запуска Bash) при запуске интерактивной оболочки в режиме POSIX (см. Bash и POSIX). -
EPOCHREALTIME -
При каждом обращении к этому параметру он раскрывается в количество секунд, прошедших с начала эпохи Unix, в виде числа с плавающей запятой с точностью до микросекунд (определение эпохи см. в документации к функции библиотеки C
time). ПрисваиванияEPOCHREALTIMEигнорируются. ЕслиEPOCHREALTIMEсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
EPOCHSECONDS -
При каждом обращении к этому параметру он раскрывается в количество секунд, прошедших с начала эпохи Unix (определение эпохи см. в документации к функции библиотеки C
time). ПрисваиванияEPOCHSECONDSигнорируются. ЕслиEPOCHSECONDSсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
EUID -
Числовой эффективный идентификатор пользователя текущего пользователя. Эта переменная доступна только для чтения.
-
EXECIGNORE -
Список шаблонов оболочки, разделённых двоеточиями (см. Сопоставление с шаблонами), который определяет набор имён файлов, игнорируемых при поиске команд с помощью
PATH. Файлы, полные пути которых соответствуют одному из этих шаблонов, не считаются исполняемыми для целей дополнения и выполнения команд посредством поискаPATH. Это не влияет на поведение команд[,testи[[. Полные пути в хеш-таблице команд не подчиняютсяEXECIGNORE. Используйте эту переменную, чтобы игнорировать файлы общих библиотек с установленным битом исполнения, которые при этом не являются исполняемыми файлами. При сопоставлении с шаблонами учитывается значение параметра оболочкиextglob. -
FCEDIT -
Редактор, используемый по умолчанию встроенной командой
fc. -
FIGNORE -
Список суффиксов, разделённых двоеточиями, которые следует игнорировать при дополнении имён файлов. Имя файла, суффикс которого совпадает с одной из записей в
FIGNORE, исключается из списка совпавших имён файлов. Пример значения: ‘.o:~’ -
FUNCNAME -
Переменная-массив, содержащая имена всех функций оболочки, находящихся в текущем стеке вызовов. Элемент с индексом 0 содержит имя выполняемой в данный момент функции оболочки, если таковая имеется. Самый нижний элемент (с наибольшим индексом) — это
"main". Эта переменная существует только во время выполнения функции оболочки. ПрисваиванияFUNCNAMEне влияют на её значение. ЕслиFUNCNAMEсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение.Эту переменную можно использовать вместе с
BASH_LINENOиBASH_SOURCE. Для каждого элементаFUNCNAMEимеются соответствующие элементы вBASH_LINENOиBASH_SOURCE, описывающие стек вызовов. Например,${FUNCNAME[$i]}была вызвана из файла${BASH_SOURCE[$i+1]}в строке${BASH_LINENO[$i]}. Встроенная командаcallerвыводит текущий стек вызовов, используя эти сведения. -
FUNCNEST -
Числовое значение больше 0 задаёт максимальный уровень вложенности функций. Вызовы функций, превышающие этот уровень вложенности, приводят к прерыванию текущей команды.
-
GLOBIGNORE -
Список шаблонов, разделённых двоеточиями, который определяет набор имён файлов, игнорируемых при раскрытии имён файлов. Если имя файла, найденное по шаблону раскрытия имени файла, также соответствует одному из шаблонов в
GLOBIGNORE, оно удаляется из списка совпадений. При сопоставлении с шаблонами учитывается значение параметра оболочкиextglob. -
GLOBSORT -
Управляет сортировкой результатов раскрытия имён файлов. Значение этой переменной задаёт критерии и порядок сортировки результатов раскрытия имён файлов. Если эта переменная сброшена или задана пустой строкой, при раскрытии имён файлов используется историческое поведение: сортировка по имени в лексикографическом порядке по возрастанию согласно переменной оболочки
LC_COLLATE.Если переменная задана, допустимое значение начинается с необязательного ‘+’, который игнорируется, или ‘-’, который меняет порядок сортировки с возрастающего на убывающий, за которым следует спецификатор сортировки. Допустимые спецификаторы сортировки: ‘name’, ‘numeric’, ‘size’, ‘mtime’, ‘atime’, ‘ctime’ и ‘blocks’. Они сортируют файлы соответственно по имени, имена — в числовом, а не лексикографическом порядке, по размеру файла, времени изменения, времени доступа, времени изменения индексного дескриптора и количеству блоков. Если значения каких-либо ключей, кроме имени, совпадают (например, если два файла имеют одинаковый размер), для сортировки используется имя как вторичный ключ.
Например, значение
-mtimeсортирует результаты по времени изменения в убывающем порядке (сначала самые новые).Спецификатор ‘numeric’ рассматривает имена, состоящие только из цифр, как числа и сортирует их по числовому значению (например, «2» располагается перед «10»). При использовании ‘numeric’ имена, содержащие нецифровые символы, располагаются после всех имён, состоящих только из цифр, и сортируются по имени в традиционном порядке.
Спецификатор сортировки ‘nosort’ полностью отключает сортировку; Bash возвращает результаты в том порядке, в котором они были прочитаны из файловой системы, игнорируя начальный ‘-’.
Если спецификатор сортировки отсутствует, по умолчанию используется name; поэтому значение ‘+’ эквивалентно пустой строке, а значение ‘-’ сортирует по имени в убывающем порядке.
Любое недопустимое значение восстанавливает историческое поведение сортировки.
-
GROUPS -
Переменная-массив, содержащая список групп, членом которых является текущий пользователь. Присваивания
GROUPSне влияют на её значение. ЕслиGROUPSсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
histchars -
Два или три символа, управляющие раскрытием истории, быстрой заменой и разбиением на токены (см. Раскрытие истории). Первый символ — это символ раскрытия истории, символ, начинающий раскрытие истории; обычно это ‘!’. Второй символ — это символ быстрой замены, обычно ‘^’. Если он стоит первым символом в строке, подстановка из истории повторяет предыдущую команду, заменяя одну строку другой. Необязательный третий символ — это символ комментария истории, обычно ‘#’, который указывает, что остаток строки является комментарием, если он стоит первым символом слова. Символ комментария истории отключает подстановку из истории для оставшихся слов в строке. Он не обязательно заставляет синтаксический анализатор оболочки рассматривать остаток строки как комментарий.
-
HISTCMD -
Номер истории, или индекс в списке истории, текущей команды. Присваивания
HISTCMDне влияют на её значение. ЕслиHISTCMDсброшена, она теряет свои специальные свойства, даже если впоследствии ей будет присвоено значение. -
HISTCONTROL -
Список значений, разделённых двоеточиями, управляющих сохранением команд в списке истории. Если список значений содержит ‘ignorespace’, строки, начинающиеся с пробела, не сохраняются в списке истории. Значение ‘ignoredups’ приводит к тому, что строки, совпадающие с предыдущей записью истории, не сохраняются. Значение ‘ignoreboth’ является сокращением для ‘ignorespace’ и ‘ignoredups’. Значение ‘erasedups’ приводит к удалению из списка истории всех предыдущих строк, совпадающих с текущей, перед сохранением этой строки. Любое значение, отсутствующее в приведённом выше списке, игнорируется. Если
HISTCONTROLсброшена или не содержит допустимого значения, Bash сохраняет в списке истории все строки, прочитанные синтаксическим анализатором оболочки, с учётом значенияHISTIGNORE. Если была сохранена первая строка многострочной составной команды, вторая и последующие строки не проверяются и добавляются в историю независимо от значенияHISTCONTROL. Если первая строка не была сохранена, вторая и последующие строки команды также не сохраняются. -
HISTFILE -
Имя файла, в который сохраняется история команд. Bash задаёт значение по умолчанию ~/.bash_history. Если
HISTFILEсброшена или пуста, оболочка не сохраняет историю команд при завершении работы. -
HISTFILESIZE -
Максимальное количество строк в файле истории. При присваивании значения этой переменной файл истории при необходимости усекается так, чтобы количество записей истории не превышало значения, удаляя самые старые записи. Если список истории содержит многострочные записи, файл истории может содержать больше строк, чем указанный максимум, чтобы избежать сохранения неполных записей истории. Файл истории также усекается до этого размера после записи при завершении работы оболочки или встроенной командой
history. Если значение равно 0, файл истории усекается до нулевого размера. Нечисловые значения и числовые значения меньше нуля запрещают усечение. Оболочка задаёт значение по умолчанию равным значениюHISTSIZEпосле чтения всех файлов запуска. -
HISTIGNORE -
Список шаблонов, разделённых двоеточиями, используемых для определения того, какие командные строки следует сохранять в списке истории. Если командная строка соответствует одному из шаблонов в значении
HISTIGNORE, она не сохраняется в списке истории. Каждый шаблон привязан к началу строки и должен соответствовать строке целиком (Bash не добавляет ‘*’ неявно). Каждый шаблон проверяется для строки после выполнения проверок, указанных вHISTCONTROL. Помимо обычных символов сопоставления с шаблонами оболочки, символ ‘&’ соответствует предыдущей строке истории. Обратная косая черта экранирует ‘&’; перед сопоставлением обратная косая черта удаляется. Если была сохранена первая строка многострочной составной команды, вторая и последующие строки не проверяются и добавляются в историю независимо от значенияHISTIGNORE. Если первая строка не была сохранена, вторая и последующие строки команды также не сохраняются. При сопоставлении с шаблонами учитывается значение параметра оболочкиextglob.HISTIGNOREчастично заменяет некоторые функцииHISTCONTROL. Шаблон ‘&’ идентиченignoredups, а шаблон ‘[ ]*’ идентиченignorespace. Объединение этих двух шаблонов через двоеточие обеспечивает функциональностьignoreboth. -
HISTSIZE -
Максимальное количество команд, сохраняемых в списке истории. Если значение равно 0, команды не сохраняются в списке истории. Отрицательные числовые значения приводят к сохранению всех команд в списке истории (ограничение отсутствует). После чтения всех файлов запуска оболочка устанавливает значение по умолчанию 500.
-
HISTTIMEFORMAT
-
Если эта переменная задана и не равна null, её значение используется в качестве строки формата для
strftime(3), чтобы выводить временную метку, связанную с каждой записью истории, отображаемой встроенной командойhistory. Если эта переменная задана, оболочка записывает временные метки в файл истории, чтобы они сохранялись между сеансами оболочки. Для отличия временных меток от других строк истории используется символ комментария истории. -
HOSTFILE -
Содержит имя файла в том же формате, что и /etc/hosts, который следует прочитать, когда оболочке нужно дополнить имя узла. Список возможных дополнений имени узла можно изменять во время работы оболочки; при следующей попытке дополнить имя узла после изменения значения Bash добавит содержимое нового файла к существующему списку. Если
HOSTFILEзадана, но не имеет значения или указывает на нечитаемый файл, Bash пытается прочитать /etc/hosts, чтобы получить список возможных дополнений имён узлов. ЕслиHOSTFILEне задана, Bash очищает список имён узлов. -
HOSTNAME -
Имя текущего узла.
-
HOSTTYPE -
Строка с описанием машины, на которой работает Bash.
-
IGNOREEOF -
Управляет действием оболочки при получении символа
EOFв качестве единственного входного символа. Если переменная задана, её значение определяет число подряд идущих символовEOF, которые можно прочитать в качестве первого символа строки ввода до выхода Bash. Если переменная задана, но её значение не является числом или равно null, по умолчанию используется 10. Если переменная не задана,EOFобозначает конец ввода для оболочки. Действует только в интерактивных оболочках. -
INPUTRC -
Имя файла инициализации Readline, заменяющее значение по умолчанию ~/.inputrc.
-
INSIDE_EMACS -
Если Bash обнаруживает эту переменную в окружении при запуске оболочки, он предполагает, что оболочка работает в буфере оболочки Emacs, и может отключить редактирование строк в зависимости от значения
TERM. -
LANG -
Используется для определения категории локали для всех категорий, не выбранных явно с помощью переменной, имя которой начинается с
LC_. -
LC_ALL -
Эта переменная переопределяет значение
LANGи любой другой переменнойLC_, задающей категорию локали. -
LC_COLLATE -
Эта переменная определяет порядок сортировки результатов раскрытия имён файлов, а также поведение диапазонов, классов эквивалентности и последовательностей сортировки при раскрытии имён файлов и сопоставлении с образцом (см. раздел Раскрытие имён файлов).
-
LC_CTYPE -
Эта переменная определяет интерпретацию символов и поведение классов символов при раскрытии имён файлов и сопоставлении с образцом (см. раздел Раскрытие имён файлов).
-
LC_MESSAGES -
Эта переменная определяет локаль, используемую для перевода строк в двойных кавычках, перед которыми стоит ‘$’ (см. раздел Перевод с учётом локали).
-
LC_NUMERIC -
Эта переменная определяет категорию локали, используемую для форматирования чисел.
-
LC_TIME -
Эта переменная определяет категорию локали, используемую для форматирования дат и времени.
-
LINENO -
Номер строки в текущем выполняемом сценарии или функции оболочки. Нумерация строк начинается с 1. Вне сценария или функции значение не обязательно имеет смысл. Если
LINENOне задана, она теряет свои особые свойства, даже если впоследствии её задать снова. -
LINES -
Используется командой
selectдля определения длины столбца при выводе списков выбора. Задаётся автоматически, если включён параметрcheckwinsize(см. раздел Встроенная команда Shopt) или в интерактивной оболочке при полученииSIGWINCH. -
MACHTYPE -
Строка, полностью описывающая тип системы, на которой выполняется Bash, в стандартном формате GNU cpu-company-system.
-
MAILCHECK -
Периодичность проверки оболочкой почты в файлах, указанных в переменных
MAILPATHилиMAIL, в секундах. По умолчанию — 60 секунд. Когда приходит время проверить почту, оболочка делает это перед отображением основного приглашения. Если переменная не задана или её значение не является числом, большим или равным нулю, оболочка отключает проверку почты. -
MAPFILE -
Переменная-массив, создаваемая для хранения текста, прочитанного встроенной командой
mapfile, если имя переменной не указано. -
OLDPWD -
Предыдущий рабочий каталог, заданный встроенной командой
cd. -
OPTERR -
Если задана значение 1, Bash выводит сообщения об ошибках, сформированные встроенной командой
getopts. При каждом запуске оболочкиOPTERRинициализируется значением 1. -
OSTYPE -
Строка с описанием операционной системы, на которой работает Bash.
-
PIPESTATUS -
Переменная-массив (см. раздел Массивы), содержащая список кодов завершения команд в последнем выполненном конвейере переднего плана, который может состоять всего из одной простой команды (см. раздел Команды оболочки). Bash задаёт
PIPESTATUSпосле выполнения многоэлементных конвейеров, конвейеров с измерением времени и инверсией, простых команд, подоболочек, созданных оператором ‘(’, составных команд[[и((, а также после условий ошибки, приводящих к прерыванию выполнения команд оболочкой. -
POSIXLY_CORRECT -
Если эта переменная присутствует в окружении при запуске Bash, оболочка переходит в режим POSIX (см. раздел Bash и POSIX) до чтения файлов запуска, как если бы был указан параметр запуска --posix. Если переменная задана во время работы оболочки, Bash включает режим POSIX, как если бы была выполнена команда
set -o posix
. При переходе оболочки в режим POSIX она задаёт эту переменную, если та ещё не задана.
-
PPID -
ID процесса-родителя оболочки. Эта переменная доступна только для чтения.
-
PROMPT_COMMAND -
Если эта переменная задана и является массивом, значение каждого заданного элемента интерпретируется как команда, которую следует выполнить перед выводом основного приглашения (
$PS1). Если переменная задана, но не является переменной-массивом, вместо этого в качестве команды используется её значение. -
PROMPT_DIRTRIM -
Если задано значение больше нуля, оно используется как количество конечных компонентов каталога, сохраняемых при раскрытии управляющих последовательностей
\wи\Wв строке приглашения (см. раздел Управление приглашением). Удалённые символы заменяются многоточием. -
PS0 -
Значение этого параметра раскрывается так же, как
PS1, и отображается интерактивными оболочками после чтения команды, но до её выполнения. -
PS3 -
Значение этой переменной используется в качестве приглашения для команды
select. Если переменная не задана, командаselectвыводит приглашение ‘#? ’ -
PS4 -
Значение этого параметра раскрывается так же, как
PS1, а раскрытое значение используется в качестве приглашения, выводимого перед эхо-выводом строки команды, если задан параметр -x (см. раздел Встроенная команда Set). Первый символ раскрытого значения при необходимости повторяется несколько раз, обозначая уровни вложенности. По умолчанию используется ‘+ ’. -
PWD -
Текущий рабочий каталог, заданный встроенной командой
cd. -
RANDOM -
При каждом обращении к этому параметру он раскрывается в случайное целое число от 0 до 32767. Присваивание значения
RANDOMинициализирует (задаёт начальное значение) последовательность случайных чисел. Начальное значение генератора случайных чисел, заданное одной и той же константой, приводит к одной и той же последовательности значений. ЕслиRANDOMне задана, она теряет свои особые свойства, даже если впоследствии её задать снова. -
READLINE_ARGUMENT -
Любой числовой аргумент, переданный команде Readline, определённой с помощью ‘bind -x’ (см. раздел Встроенные команды Bash), при её вызове.
-
READLINE_LINE -
Содержимое буфера строки Readline для использования с ‘bind -x’ (см. раздел Встроенные команды Bash).
-
READLINE_MARK -
Позиция метки (сохранённой точки вставки) в буфере строки Readline для использования с ‘bind -x’ (см. раздел Встроенные команды Bash). Символы между точкой вставки и меткой часто называют областью.
-
READLINE_POINT -
Позиция точки вставки в буфере строки Readline для использования с ‘bind -x’ (см. раздел Встроенные команды Bash).
-
REPLY -
Переменная по умолчанию для встроенной команды
read; ей присваивается прочитанная строка, если дляreadне указан аргумент с именем переменной. -
SECONDS -
Эта переменная раскрывается в число секунд, прошедших с момента запуска оболочки. Присваивание этой переменной сбрасывает счётчик в присвоенное значение, а раскрытое значение становится равным присвоенному значению плюс число секунд, прошедших с момента присваивания. Число секунд на момент запуска оболочки и текущее время всегда определяются по системным часам с точностью до одной секунды. Если
SECONDSне задана, она теряет свои особые свойства, даже если впоследствии её задать снова. -
SHELL -
Эта переменная окружения раскрывается в полный путь к оболочке. Если при запуске оболочки она не задана, Bash присваивает ей полный путь к оболочке входа в систему текущего пользователя.
-
SHELLOPTS -
Список включённых параметров оболочки, разделённых двоеточиями. Каждое слово в списке является допустимым аргументом параметра -o встроенной команды
set(см. раздел Встроенная команда Set). Параметры, указанные вSHELLOPTS, — это параметры, для которых команда ‘set -o’ выводит значение ‘on’. Если эта переменная присутствует в окружении при запуске Bash, оболочка включает каждый параметр из списка до чтения файлов запуска. Если эта переменная экспортирована, дочерние оболочки включат каждый параметр из списка. Эта переменная доступна только для чтения. -
SHLVL -
Увеличивается на единицу при каждом запуске нового экземпляра Bash. Предназначена для подсчёта уровня вложенности оболочек Bash.
-
SRANDOM -
При каждом обращении эта переменная раскрывается в 32-разрядное псевдослучайное число. В системах, поддерживающих /dev/urandom или
arc4random, генератор случайных чисел не является линейным, поэтому каждое возвращаемое число не связано с предшествующими числами. Генератор случайных чисел нельзя инициализировать, поэтому присваивания этой переменной не влияют на его работу. ЕслиSRANDOMне задана, она теряет свои особые свойства, даже если впоследствии её задать снова. -
TIMEFORMAT -
Значение этого параметра используется как строка формата, задающая способ отображения сведений о времени для конвейеров, перед которыми стоит зарезервированное слово
time. Символ ‘%’ вводит управляющую последовательность, раскрываемую в значение времени или другие сведения. Ниже перечислены управляющие последовательности и их значения; квадратные скобки обозначают необязательные части.%%-
Символ ‘%’ без изменений.
%[p][l]R-
Затраченное время в секундах.
%[p][l]U-
Количество секунд процессорного времени, затраченного в пользовательском режиме.
%[p][l]S-
Количество секунд процессорного времени, затраченного в системном режиме.
%PПроцент использования процессора, вычисляемый по формуле (%U + %S) / %R.
Необязательный параметр p — это цифра, задающая точность, то есть количество дробных знаков после десятичной точки. Значение 0 означает, что десятичная точка и дробная часть не выводятся.
timeвыводит не более шести знаков после десятичной точки; значения p больше 6 заменяются на 6. Если p не задан,timeвыводит три знака после десятичной точки.Необязательный параметр
lзадаёт более длинный формат, включающий минуты, вида MMmSS.FFs. Значение p определяет, включается ли дробная часть.Если эта переменная не задана, Bash действует так, как если бы ей было присвоено значение
$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
Если значение равно null, Bash не отображает сведения о времени. При отображении строки формата добавляется завершающий символ новой строки.
-
TMOUT -
Если задано значение больше нуля, встроенная команда
readиспользует его как время ожидания по умолчанию (см. раздел Встроенные команды Bash). Командаselect(см. раздел Условные конструкции) завершается, если в течениеTMOUTсекунд не поступают входные данные, когда ввод осуществляется с терминала.В интерактивной оболочке значение интерпретируется как число секунд ожидания строки ввода после вывода основного приглашения. Если за это время не поступает полная строка ввода, Bash завершает работу.
-
TMPDIR -
Если переменная задана, Bash использует её значение как имя каталога, в котором создаёт временные файлы для нужд оболочки.
-
UID -
Числовой реальный идентификатор пользователя для текущего пользователя. Эта переменная доступна только для чтения.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html