Spec-Zone.ru › Bash

Переменные 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 — допустимые значения, соответствующие параметру compat42 shopt и устанавливающие уровень совместимости 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API