Переменные командного интерпретатора
Командный интерпретатор устанавливает следующие переменные:
PPID | Идентификатор родительского процесса для командного интерпретатора. Эта переменная доступна только для чтения. |
PWD | Текущий рабочий каталог, установленный с помощью команды . |
OLDPWD | Предыдущий рабочий каталог, который был установлен с помощью команды . |
REPLY | Устанавливается равной значению, прочитанному встроенной командой , при вызове ее без аргументов. |
UID | Идентификатор текущего пользователя - устанавливается при запуске командного интерпретатора. Эта переменная доступна только для чтения. |
EUID | Эффективный идентификатор текущего пользователя - устанавливается при запуске командного интерпретатора. Эта переменная доступна только для чтения. |
GROUPS | Переменная-массив, содержащая список групп, в которые входит текущий пользователь. Эта переменная доступна только для чтения. |
BASH | Полное имя файла, использованное для вызова данного экземпляра bash. |
BASH_VERSION | Строка, описывающая версию данного экземпляра bash. |
BASH_VERSINFO | Доступный только для чтения массив, элементы которого содержат информацию о версии для данного экземпляра bash. Элементы массива имеют следующие значения: |
BASH_VERSINFO[0] | Главный номер версии (релиз). |
BASH_VERSINFO[1] | Второстепенный номер версии (версия). |
BASH_VERSINFO[2] | Уровень исправлений. |
BASH_VERSINFO[3] | Версия сборки. |
BASH_VERSINFO[4] | Статус релиза (например, beta1). |
BASH_VERSINFO[5] | Значение переменной MACHTYPE. |
LINENO | При каждом обращении к этому параметру командный интерпретатор подставляет десятичное число, представляющее порядковый номер текущей строки (начиная с 1) в сценарии или функции. При вызове не из сценария или функции, не гарантируется подстановка осмысленного значения. Если переменная LINENO удаляется с помощью , она теряет свои специальные свойства, даже если в дальнейшем переустанавливается. |
HISTCMD | Исторический номер команды, или индекс текущей команды в списке выполненных команд. Если переменная HISTCMD удаляется с помощью , она теряет свои специальные свойства, даже если в дальнейшем переустанавливается. |
DIRSTACK | Переменная-массив (см. раздел "" далее), в которой хранится текущее содержимое стека каталогов. Каталоги находятся в стеке в том же порядке, в котором выдаются встроенной командой . Путем присваивания элементам этого массива можно изменять каталоги, уже находящиеся в стеке, но для добавления и удаления каталогов надо использовать встроенные команды и . Присваивание значения этой переменной не меняет текущий каталог. Если переменная DIRSTACK удаляется с помощью , она теряет свои специальные свойства, даже если в дальнейшем переустанавливается. |
PIPESTATUS | Переменная-массив (см. раздел "" далее), содержащая список значений статусов выхода процессов в последнем выполненном в приоритетном режиме конвейере (который может состоять и всего из одной команды). |
OPTARG | Значение последнего аргумента-опции, обработанного встроенной командной (см. раздел "" ниже). |
OPTIND | Индекс следующего аргумента, который должен быть обработан встроенной командой (см. раздел "" ниже). |
HOSTNAME | Автоматически устанавливается равной имени текущего хоста. |
HOSTTYPE | Автоматически устанавливается равной строке, уникально описывающей тип машины, на которой выполняется bash. Стандартное значение зависит от системы. |
OSTYPE | Автоматически устанавливается равной строке, описывающей операционную систему, на которой выполняется командный интерпретатор bash. Стандартное значение зависит от системы. |
IFS | Внутренний разделитель полей (Internal Field Separator), используемый для выделения слов после всех подстановок и для разбиения на слова строк, прочитанных с помощью встроенной команды . Стандартное значение - "". |
PATH |
Путь поиска команд. Это список каталогов через двоеточие, в которых командный интерпретатор ищет команды (см. раздел "" ниже). Стандартный путь поиска зависит от системы и задается администратором, устанавливающим bash. Типичное значение: "/usr/gnu/bin :/usr/local/bin :/usr/ucb:/bin:/usr/bin:.". |
HOME | Начальный каталог текущего пользователя; стандартный аргумент для встроенной команды . Значение этой переменной также используется при замене тильды. |
CDPATH | Путь поиска для команды . Это список каталогов через двоеточие, в которых командный интерпретатор ищет целевые каталоги, указанные по имени в команде . Пример возможного значения - ".:~:/usr". |
BASH_ENV | Если этот параметр установлен при выполнении командным интерпретатором bash сценария, его значение интерпретируется как имя файла, содержащего команды инициализации интерпретатора, аналогично ~/.bashrc. В значении BASH_ENV перед интерпретацией выполняется подстановка значений параметров, подстановка результатов выполнения команд и арифметические вычисления. Переменная PATH не используется для поиска результирующего имени файла. |
Если этот параметр установлен равным имени файла и не установлена переменная MAILPATH, bash информирует пользователя о получении электронной почты в указанный файл. | |
MAILCHECK |
Задает частоту проверки (в секундах) электронной почты командным интерпретатором bash. Стандартное значение - 60 секунд. Когда приходит время проверять наличие новой почты, командный интерпретатор делает это перед выдачей первичного приглашения. Если эта переменная не установлена, проверка почты командным интерпретатором отключается. |
MAILPATH |
Список имен файлов через двоеточие, в которых нужно проверять наличие новых почтовых сообщений. Можно задавать сообщение, которое должно выдаваться при поступлении почты в конкретный файл, отделяя сообщение от имени файла вопросительным знаком (?). В тексте этого сообщения метасимвол $_ заменяется именем текущего файла почты. Например: MAILPATH='/usr/spool/mail/bfox?"You have mail" :~/shell-mail?"$_ has mail!"' Командный интерпретатор bash поддерживает стандартное значение для этой переменной, но используемое при этом местонахождение файлов почты пользователя зависит от системы (например, /usr/spool/mail/$USER). |
PS1 | Значение этого параметра обрабатывается (см. раздел "" ниже) и используется для установки строки первичного приглашения. Стандартное значение - "\s-\v\$ ". |
PS2 | Значение этого параметра обрабатывается, как и PS1, и используется для установки строки вторичного приглашения. Стандартное значение - "> ". |
PS3 | Значение этого параметра используется в качестве приглашения для команды (см. раздел "" выше). |
PS4 |
Значение этого параметра обрабатывается, как и PS1, и выдается перед каждой командой, показываемой интерпретатором bash в ходе трассировки выполнения. Первый символ PS4 повторяется необходимое количество раз, показывая уровень вложенности. Стандартное значение - "+". |
TIMEFORMAT | Значение этого параметра используется в качестве строки, задающей формат выдачи информации о времени выполнения для конвейеров, перед которыми задано зарезервированное слово time. Символ % начинает управляющую последовательность, заменяемую значением времени или другой информацией. Управляющие последовательности имеют следующие значения (в квадратных скобках представлены необязательные части): |
%% | Символ %. |
%[p][l]R | Время выполнения, в секундах. |
%[p][l]U | Количество секунд работы процессора в пользовательском режиме. |
%[p][l]S | Количество секунд работы процессора в системном режиме. |
%P | Процент использования процессора, вычисляемый как (%U + %S) / %R. |
Необязательный параметр l задает длинный формат, включая минуты, в виде MMmSS.FFs. Значение праметра p определяет, включаются доли секунды или нет.
Если эта переменная не установлена, bash действует так, как если бы она имела значение $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'. Если установлено пустое значение, информация о времени выполнения не выдается. При выводе строки по формату добавляется перевод строки.
LC_ALL | Эта переменная переопределяет значение переменной LANG и всех остальных переменных LC_, задающих категорию локали. |
LC_COLLATE | Эта переменная задает порядок сортировки, используемый при сортировке полученных по шаблону имен файлов, и определяет интерпретацию диапазонов, классов эквивалентостей и правила сравнения символов для подстановки имен файлов и сопоставления с образцом. |
LC_CTYPE | Эта переменная определяет интерпретацию символов и принадлежность символов к определенному классу для подстановки имен файлов и сопоставления с образцом. |
LC_MESSAGES | Эта переменная определяет локаль, используемую для обработки строк в двойных кавычках, перед которыми указан символ $. |
PROMPT_COMMAND | Если значение задано, оно выполняется как команда перед выдачей каждого первичного приглашения. |
IGNOREEOF | Управляет действием командного интерпретатора при получении символа конца файла (EOF) как единственного символа в строке. Если эта переменная установлена, ее значение интерпретируется как количество подряд идущих символов EOF, с которых должна начинаться строка, чтобы в результате работа командного интерпретатора bash завершилась. Если переменная существует, но не имеет числового значения или не имеет значения вообще, по умолчанию используется значение 10. Если эта переменная не существует, EOF означает конец входных данных для командного интерпретатора. |
TMOUT | Если установлено значение больше нуля, оно интерпретируется как количество секунд ожидания ввода после выдачи первичного приглашения. Командный интерпретатор bash завершает работу по истечении этого времени, если не введена команда. |
FCEDIT | Задает стандартный редактор для встроенной команды . |
FIGNORE |
GLOBIGNORE | Список шаблонов через двоеточие, задающих набор имен файлов, которые надо игнорировать при подстановке имен. Если имя файла, соответствующее шаблону, также соответствует одному из шаблонов в GLOBIGNORE, оно удаляется из списка соответствующих. |
INPUTRC | Имя файла начального запуска readline, переопределяющего стандартные установки в файле ~/.inputrc (см. раздел "" ниже). |
HISTCONTROL | Если имеет значение ignorespace, строки, начинающиеся символом пробела, не попадают в список выполненных команд. Если имеет значение ignoredups, строки, совпадающие с последней выполненной командой, в список выполненных команд не попадают. Значение ignoreboth сочетает действие обеих представленных опций. Если переменной нет или она имеет какое-то другое значение, кроме перечисленных выше, все строки, прочитанные синтаксическим анализатором, сохраняются в списке истории, с учетом значения переменной HISTIGNORE. Действие этой переменной переопределяется переменной HISTIGNORE. Вторая и следующие строки многострочной составной команды не проверяются, и добавляются в список истории независимо от значения HISTCONTROL. |
HISTIGNORE | Список шаблонов через двоеточие, используемых для принятия решения о сохранении командных строк в списке истории. Каждый шаблон привязывается к началу строки и должен задавать всю строку ('*' неявно не добавляется). Каждый шаблон сравнивается со строкой после проверок, задаваемых переменной HISTCONTROL. Кроме обычных символов сопоставления с образцом в командном интерпретаторе, символ '&' сопоставляется с предыдущей строкой в списке истории. Символ '&' можно экранировать с помощью обратной косой. Перед сопоставлением обратная косая убирается. Вторая и последующая строки составной многострочной команды не проверяются и добавляются в список истории независимо от значения переменной HISTIGNORE. |
histchars | Два или три символа, управляющих подстановкой и разбиением на лексемы уже выполненных команд (см. раздел "" ниже). Первый символ - это символ подстановки из списка, который означает начало работы со списком истории. Обычно это символ '!'. Второй символ - это символ быстрой подстановки, используемый для быстрого повторения предыдущей введенной команды, с подстановкой указанной строки вместо другой, заданной в этой команде. По умолчанию используется символ '^'. Необязательный третий символ - это символ, указывающий, если является первым символом слова, что остаток строки - это комментарий. Обычно в этом качестве используется символ '#'. Символ комментария для списка истории приводит к отказу от подстановки из истории для оставшихся слов в командной строке. Он не обязательно приводит к обработке синтаксическим анализатором оставшейся части строки как комментария. |
HOSTFILE | Содержит имя файла того же формата, что и файл /etc/hosts, который будет читаться при необходимости подстановки имени хоста. Этот файл можно менять интерактивно; при следующей попытке подстановки имени хоста bash добавит содержимое нового файла к уже существующей базе данных. |
auto_resume | Эта переменная управляет взаимодействием командного интерпретатора с пользователем и средствами управления заданиями. Если она установлена, простые команды из одного слова и без перенаправлений рассматриваются как указатели возможного возобновления существующих остановленных заданий. Неоднозначность не допускается; если с введенной строки начинается более одного задания, выбирается последнее по времени приостановки задание. Имя остановленного задания, в этом контексте, - это командная строка, использовавшаяся для его запуска. Если эта переменная имеет значение exact, введенная строка должна точно совпадать с именем остановленного задания; Если же задано значение substring, введенная строка должна быть подстрокой имени остановленного задания. Это аналогично по возможностям идентификатору задания %? (см. раздел "" ниже). Если установлено любое другое значение, введенная строка должна быть префиксом имени остановленного задания; это аналогично по возможностям идентификатору задания %. |