Spec-Zone.ru › Bash

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

Оболочка обрабатывает несколько параметров особым образом. К этим параметрам можно только обратиться; присваивание им не разрешено.

*

($*) Расширяется до позиционных параметров, начиная с первого. Когда расширение происходит вне двойных кавычек, каждый позиционный параметр расширяется в отдельное слово. В контекстах, где это выполняется, эти слова подвергаются дальнейшему разделению слов и расширению имён файлов. Когда расширение происходит внутри двойных кавычек, оно расширяется в одно слово, где значение каждого параметра разделено первым символом переменной IFS. То есть, "$*" эквивалентно "$1c$2c…", где c — первый символ значения переменной IFS. Если IFS не установлена, параметры разделяются пробелами. Если IFS пуста, параметры объединяются без разделителей.

@

($@) Расширяется до позиционных параметров, начиная с первого. В контекстах, где выполняется разделение слов, каждый позиционный параметр расширяется в отдельное слово; если не внутри двойных кавычек, эти слова подвергаются разделению слов. В контекстах, где разделение слов не выполняется, это расширяется в одно слово, где каждый позиционный параметр разделяется пробелом. Когда расширение происходит внутри двойных кавычек, и выполняется разделение слов, каждый параметр расширяется в отдельное слово. То есть, "$@" эквивалентно "$1" "$2" …. Если расширение в двойных кавычках происходит внутри слова, расширение первого параметра присоединяется к начальной части исходного слова, а расширение последнего параметра присоединяется к последней части исходного слова. Когда нет позиционных параметров, "$@" и $@ расширяются до ничего (т. е. они удаляются).

#

($#) Расширяется до количества позиционных параметров в десятичной форме.

?

($?) Расширяется до кода возврата последней выполненной фоновой команды.

-

($-, дефис.) Расширяется до текущих флагов опций, указанных при вызове, командой set или установленными самой оболочкой (например, опцией -i).

$

($$) Расширяется до идентификатора процесса оболочки. В подоболочке расширяется до идентификатора процесса вызывающей оболочки, а не подоболочки.

!

($!) Расширяется до идентификатора процесса последней команды, помещенной в фоновый режим, будь то выполненная как асинхронная команда или с использованием команды 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

Spec-Zone.ru

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