${Параметр}
| Оболочка считывает символы между ${ и } и
интерпретирует их как одно слово, даже если в нем содержатся фигурные скобки
или метасимволы. Вместо имени указанного в скобках параметра
подставляется его значение. Фигурные скобки требуется указывать в
случаях, когда после значения параметр стоят буква, цифра или знак
подчеркивания (иначе они будут считаться частью имени параметра), а также при
обращении к элементам именованного параметра-массива.
Если в имени параметра содержится хотя
бы одна цифра, он называется позиционным параметром.
Позиционные параметры, состоящие из нескольких цифр, должны заключаться в
фигурные скобки. Если вам нужно обработать все позиционные параметры
одновременно, укажите особый параметр * или @) - вместо
него подставляются значения всех позиционных параметров, начиная с
$1 (Значения параметров будут разделены символом разделения
полей). Идентификатор массива с индексом (номером элемента)
* или @ заменяется на значения всех элементов этого
массива. substituted.
|
${#параметр}
| Если значение параметра - * или @, то подставляется количество
позиционных параметров. В противном случае подставляется длина
позиционного параметра с номером параметр.
|
${#идентификатор[*]}
| Заменяется на число элементов в массиве идентификатор.
|
${параметр:-значение}
| Если параметр определен и ему присвоено непустое значение, то
подставляется его значение, в противном случае подставляется значение
параметра значение.
|
${параметр:=значение}
| Если параметр не определен или ему присвоено пустое значение,
то будет присвоено указанное значение. Этот способ нельзя
применять для изменения значений позиционных параметров.
|
${параметр:?значение}
| Если параметр определен и ему присвоено непустое выражение, то
подставляется его значение. В противном случае выдается указанное
значение и работа оболочки завершается. Если
значение не указано, то выдается стандартное сообщение.
|
${параметр:+значение}
| Если параметр определен, и ему присвоено непустое значение, то
подставляется указанное значение. В противном случае
подставляется пустое значение.
|
${параметр#шаблон}
| ${параметр##шаблон}
| Если значение параметра начинается с указанного
шаблона, то подставляется значение параметра за вычетом
символов шаблона. В противном случае подставляется полное значение
параметра. В первом формате из подставляемого значения
удаляется шаблон минимальной возможной длины. Во втором формате из
подставляемого значения удаляется шаблон максимальной возможной длины.
|
${параметр%шаблон}
| ${параметр%%шаблон}
| Если значение параметра заканчивается на указанный
шаблон, то подставляется значение параметра за вычетом
символов шаблона. В первом формате из подставляемого
значения удаляется шаблон минимальной возможной длины; во втором формате
- шаблон максимальной возможной длины.
Во всех выражениях, указанных выше, параметр значение
вычисляется только в случае, если оно должно быть подставлено. Таким
образом, в следующем примере команда pwd будет выполнена только в
случае, если флаг -d не определен или пуст:
echo ${d:-$(pwd)}
|
@
| Выдает значения позиционных параметров, начиная с $1.
Параметры будут разделены пробелами.
Если вы заключите символы
$@ в двойные кавычки ", то каждый позиционный параметр
будет считаться отдельной строкой. Если не определен ни один
позиционный параметр, то вместо $@ будет подставлена пустая строка.
|
*
| Выдает значения позиционных параметров, начиная с $1.
Оболочка отделяет каждый параметр первым символом значения переменной IFS.
Если символы $*
заключены в двойные кавычки " , то выданные значения позиционных
параметров также будут заключены в двойные кавычки. Как и в первом
случае, значения параметров будут разделены первым символом параметра
IFS.
|
#
| Выдает число позиционных параметров, переданных в оболочку, не считая
собственно имени процедуры оболочки. Можно сказать, что параметр
$# выдает номер последнего позиционного параметра. Одно из
основных применений этого параметра - проверка наличия нужного числа
аргументов.
|
-
| Передает флаги в оболочку при ее запуске или при выполнении команды
set.
|
?
| Выдает код завершения последней выполненной команды. Это
десятичная строка. Большинство команд возвращают нулевое значение (код
успешного завершения). Сама оболочка возвращает текущее значение
переменной $? в качестве кода завершения.
|
$
| Равен номеру процесса текущей оболочки. Поскольку в каждый момент
времени номера всех активных процессов различны, они часто применяются в
качестве уникальных имен для временных файлов.
Ниже приведен пример создания такого временного файла:
temp=$HOME/temp/$$
ls >$temp
.
.
.
rm $temp
|
!
| Указывает номер процесса последней команды, запущенной в фоновом
режиме.
|
ноль (0)
| Передает имя оболочки или сценария оболочки.
|
underscore (_)
| Первоначально равна абсолютному пути к выполняемому файлу оболочки или
сценария. Затем этой переменной присваивается значение последнего
аргумента предыдущей команды. Этот параметр не определен для команд,
выполняемых в асинхронном режиме. Кроме того, параметру - присваивается
имя файла MAIL при проверке наличия новой почты.
|
ERRNO
| Содержит код ошибки, выданный последней подпрограммой, завершившейся с
ошибкой. Это значение зависит от конкретной системы и предназначено
только для отладки.
|
LINENO
| Содержит номер текущей строки в выполняемом сценарии или функции.
|
OLDPWD
| Содержит имя предыдущего рабочего каталога, установленное с помощью
команды cd.
|
OPTARG
| Содержит значение последнего аргумента опции, обработанного обычной
встроенной командой getopts.
|
OPTIND
| Содержит номер последнего аргумента опции, обработанного обычной
встроенной командой getopts.
|
PPID
| Содержит номер родительского процесса оболочки.
|
PWD
| Содержит имя текущего рабочего каталога, установленного с помощью команды
cd.
|
RANDOM
| Содержит случайное целое число, равномерно распределенное в интервале от
0 до 32767. Последовательность псевдослучайных чисел можно
инициализировать, присвоив произвольное число переменной
RANDOM.
|
REPLY
| Значение этой переменной присваивается оператором select, а
также обычной встроенной командой read, если она вызвана без
аргументов.
|
SECONDS
| Содержит число секунд, прошедшее с момента запуска оболочки. Если
этой переменной будет присвоено какое-либо число, то в результате она будет
содержать сумму числа секунд, прошедшего с момента запуска оболочки, и
присвоенного ей числа.
|
CDPATH
| Задает список каталогов, в которых выполняется поиск нужного каталога при
выполнении команды cd.
|
COLUMNS
| Задает ширину окна редактирования в режиме редактирования и при выдаче
списков оператора select.
|
EDITOR
| Если значение этого параметра заканчивается на символы emacs, gmacs или
vi, и в данном сеансе оболочки переменная VISUAL не была определена
с помощью особой встроенной команды set, то оболочка включает
соответствующий встроенный редактор для командной строки.
|
ENV
| Если эта переменная определена, то при запуске оболочка пытается
выполнить указанный файл. Данный файл выполняется после файла
$HOME/.profile и, как правило, применяется для определения функций и
псевдонимов.
|
FCEDIT
| Задает имя редактора по умолчанию для встроенной команды
fc.
|
FPATH
| Задает список каталогов для поиска определений функций. В случае,
если какая-либо функция будет вызвана с флагом -u, и не будет
найдена соответствующая команда, оболочка попытается найти определение функции
в этих каталогах. Если будет найден выполняемый файл, он будет прочитан
и выполнен в текущей среде.
|
HISTFILE
| Если эта переменная определена на момент запуска оболочки, она задает имя
файла хронологии выполненных команд.
|
HISTSIZE
| Если эта переменная определена на момент запуска оболочки, она задает
число команд, сохраняемых в файле хронологии. Значение по умолчанию -
128.
|
HOME
| Содержит имя каталога, который становится текущим после входа в
систему. Эта переменная инициализируется программой
login. Значение переменной $HOME используется
командой cd, если она указана без аргументов. Применение
этой переменной вместо абсолютных имен позволяет каждому пользователю без
изменений выполнять процедуру в своей среде из различных каталогов.
|
IFS
| Задает внутренние разделители полей (обычно содержит пробел, символ
табуляции и символ новой строки). Эти символы применяются для
разделения слов, получаемых в результате подстановки параметров или команд, и
для разделения слов при выполнении обычной встроенной команды
read. Первый символ параметра IFS вставляется
между именами, полученными в результате подстановки параметра
$*.
|
LANG
| Содержит значение по умолчанию для переменных LC_*.
|
LC_ALL
| Переопределяет значение переменной LANG и переменных
LC_*.
|
LC_COLLATE
| Задает режим проверки принадлежности значений диапазону при подстановке
шаблонов.
|
LC_CTYPE
| Задает классификацию символов, соответствие между строчными и прописными
буквами и прочие атрибуты символов.
|
LC_MESSAGES
| Задает язык, на котором выдаются сообщения.
|
LINES
| Задает высоту колонок при печати списков оператора select. Высота
списков оператора select (в строках) составляет около двух третей значения
LINES.
|
MAIL
| Задает имя файла, применяемого для проверки наличия новой почты.
Если этой переменной будет присвоено имя файла почты, а переменная
MAILPATH не будет определена, то оболочка будет проверять наличие
новой почты в указанном файле.
|
MAILCHECK
| Задает интервал (в секундах), через который оболочка будет проверять,
изменились ли файлы, имена которых присвоены переменным MAILPATH и
MAIL. Значение по умолчанию - 600 секунд. По
истечении указанного времени с момента последней проверки оболочка вновь
проверяет файлы почты перед тем, как выдать приглашение.
|
MAILPATH
| Задает список имен файлов, разделенных двоеточиями. Если эта
переменная определена, оболочка информирует пользователя о любых изменениях в
указанных файлах. Файлы проверяются с интервалом, заданным переменной
MAILCHECK. За каждым именем файла может быть указан символ
? и сообщение для печати. Для данного сообщения будет
выполнена подстановка переменных, и на момент подстановки имя измененного
файла будет присвоено переменной $_. По умолчанию
выдается сообщение Вам пришла новая почта в
$_.
|
NLSPATH
| Задает расположение каталогов с сообщениями. Эта переменная
применяется вместе с переменной LC_MESSAGES.
|
PATH
| Содержит список каталогов, в которых выполняется поиск команд.
Каталоги должны быть разделены двоеточиями. При поиске команд каталоги
просматриваются в указанном порядке. Пустая строка (два двоеточия
подряд, начальное или конечное двоеточие) в этом списке соответствует текущему
каталогу.
|
PS1
| Задает основное приглашение системы. Это приглашение применяется в
качестве основного приглашения оболочки, значение по умолчанию -
$. Восклицательный знак (!) в основном
приглашении оболочки заменяется на номер текущей команды.
|
PS2
| Задает вспомогательное приглашение системы, по умолчанию - символ
>.
|
PS3
| Задает приглашение выбора, применяемое в цикле select.
Значение по умолчанию - #? .
|
PS4
| Значение этой переменной после подстановки параметров добавляется в
начало каждой строки трассировочной информации. Если она не определена,
по умолчанию в качестве приглашения трассировки используется символ
+.
|
SHELL
| Задает путь к программе оболочки.
|
TMOUT
| Задает максимальное время (в секундах), в течение которого оболочка может
бездействовать. Если переменной TMOUT присвоено значение,
большее нуля, то оболочка автоматически завершает работу в случае, если в
течение указанного времени в ответ на приглашение PS1 не будет
введена ни одна команда. (Учтите, что оболочка может быть
скомпилирована с жестким ограничением, которое нельзя превысить путем
увеличения этого значения.)
Примечание: По истечении указанного времени оболочка
дополнительно ожидает ввода команды в течение 60 секунд.
|
VISUAL
| Если значение этой переменной заканчивается на символы emacs, gmacs или
vi, то включается соответствующая опция редактирования.
|