Bash - командный интерпретатор GNU Bourne


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


Командный интерпретатор обрабатывает ряд параметров специальным образом. Можно только ссылаться на значения этих параметров - присваивания им не разрешены.

*Заменяется позиционными параметрами, начиная с первого. Когда такая замена выполняется в двойных кавычках, результат будет одним словом, в котором значения параметров разделены первым символом значения специальной переменной IFS. То есть, "$*" эквивалентно "$1c$2c...", где c - первый символ значения переменной IFS. Если переменная IFS не установлена, значения параметров разделяются пробелами. Если переменная IFS имеет пустое значение, значения параметров просто конкатенируются, без разделителей.
@Заменяется позиционными параметрами, начиная с первого. Когда такая замена выполняется в двойных кавычках, каждый параметр заменяется отдельным словом. То есть, "$@" эквивалентно "$1" "$2" ... Когда позиционных параметров нет, "$@" и $@ заменяются пустой строкой (т.е. они просто удаляются).
#Заменяется десятичным значением количества позиционных параметров.
?Заменяется статусом последнего выполненного в приоритетном режиме конвейера.
-Заменяется флагами текущих опций, заданных при вызове, с помощью встроенной команды или установленных самим командным интерпретатором (как, например, опция ).
$Заменяется идентификатором процесса командного интерпретатора. В порожденном командном интерпретаторе, запущенном с помощью (), заменяется идентификатором процесса основного интерпретатора, а не порожденного.
!Заменяется идентификатором последнего процесса, запущенного в фоновом (асинхронном) режиме.
0Заменяется именем командного интерпретатора или сценария. Это значение устанавливается при инициализации командного интерпретатора. Если bash вызван с командным файлом, $0 будет установлен равным имени этого файла. Если bash запущен с опцией , $0 получает значение первого аргумента после строки, которую надо выполнить, если он задан. В противном случае, этот специальный параметр получает значение имени файла, использованного для вызова bash, которое задается нулевым аргументом.
_При запуске командного интерпретатора устанавливается равным полному имени файла (absolute file name) командного интерпретатора или выполняемого сценария, переданного в списке аргументов. В последствии, заменяется последним аргументом предыдущей команды, с учетом всех замен. Также устанавливается равным полному имени файла каждой выполняемой внешней команды и помещается в среду, экспортируемую для этой команды. При проверке почты этот параметр содержит имя проверяемого файла почты.



Содержание раздела