Специальные параметры
Оболочка особым образом обрабатывает несколько параметров. На эти параметры можно ссылаться, но присваивать им значения нельзя. Специальные параметры обозначаются одним из следующих символов.
-
* -
($*) Раскрывается в позиционные параметры, начиная с первого. Если раскрытие происходит не в двойных кавычках, каждый позиционный параметр раскрывается в отдельное слово. В контекстах, где выполняется раскрытие слов, эти слова подвергаются дальнейшему разбиению на слова и подстановке имён файлов. Если раскрытие происходит в двойных кавычках, оно раскрывается в одно слово, в котором значения параметров разделены первым символом переменной
IFS. То есть"$*"эквивалентно"$1c$2c…", где c — первый символ значения переменнойIFS. ЕслиIFSне задана, параметры разделяются пробелами. ЕслиIFSимеет значение null, параметры объединяются без разделителей. -
@ -
($@) Раскрывается в позиционные параметры, начиная с первого. В контекстах, где выполняется разбиение на слова, каждый позиционный параметр раскрывается в отдельное слово; если раскрытие происходит не в двойных кавычках, эти слова подвергаются разбиению на слова. В контекстах, где разбиение на слова не выполняется, например в части оператора присваивания, содержащей значение, параметр раскрывается в одно слово, в котором каждый позиционный параметр отделён пробелом. Если раскрытие происходит в двойных кавычках и выполняется разбиение на слова, каждый параметр раскрывается в отдельное слово. То есть
"$@"эквивалентно"$1" "$2" …. Если раскрытие в двойных кавычках происходит внутри слова, раскрытие первого параметра объединяется с раскрытием начальной части исходного слова, а раскрытие последнего параметра — с раскрытием конечной части исходного слова. Если позиционных параметров нет,"$@"и$@раскрываются в пустую строку (то есть удаляются). -
# -
($#) Раскрывается в число позиционных параметров в десятичной системе счисления.
-
? -
($?) Раскрывается в код завершения последней выполненной команды.
-
- -
($-, дефис.) Раскрывается в текущие флаги параметров, заданные при вызове, встроенной командой
setили самой оболочкой (например, параметр -i). -
$ -
($$) Раскрывается в ID процесса оболочки. В подоболочке раскрывается в ID процесса вызвавшей её оболочки, а не подоболочки.
-
! -
($!) Раскрывается в ID процесса задания, последним помещённого в фоновый режим, независимо от того, было ли оно запущено как асинхронная команда или с помощью встроенной команды
bg(см. Встроенные команды управления заданиями). -
0 -
($0) Раскрывается в имя оболочки или сценария оболочки. Это значение задаётся при инициализации оболочки. Если Bash вызывается с файлом команд (см. Сценарии оболочки),
$0получает имя этого файла. Если Bash запускается с параметром -c (см. Вызов Bash),$0получает первый аргумент после строки, которую нужно выполнить, если такой аргумент есть. В противном случае ему присваивается имя файла, использованного для вызова Bash, переданное как аргумент ноль.
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/Special-Parameters.html