Spec-Zone.ru › Bash

Параметры оболочки

Параметр — это сущность, хранящая значения. Он может быть name, числом или одним из специальных символов, перечисленных ниже. Переменная — это параметр, обозначаемый name. У переменной есть value и ноль или более attributes. Атрибуты назначаются с помощью встроенной команды declare (см. описание встроенной команды declare в Команды встроенного интерпретатора Bash).

Параметр устанавливается, если ему было присвоено значение. Пустая строка является допустимым значением. После установки переменная может быть удалена только с помощью встроенной команды unset.

Переменной может быть присвоено значение с помощью оператора вида

name=[value]

Если значение не указано, переменной присваивается пустая строка. Все значения проходят расширение тильды, расширение параметров и переменных, подстановку команд, арифметическое расширение и удаление кавычек (см. Расширение параметров оболочки). Если у переменной установлен атрибут integer, то значение вычисляется как арифметическое выражение, даже если не используется расширение $((…)) (см. Арифметическое расширение). Разделение слов и расширение имён файлов не выполняются. Операторы присваивания могут также появляться в качестве аргументов встроенных команд alias, declare, typeset, export, readonly, и local (команды объявления). В режиме POSIX (см. Режим Bash POSIX) эти встроенные команды могут появляться в команде после одной или нескольких команд command и сохранять свойства операторов присваивания.

В контексте присваивания значения переменной оболочки или индексу массива (см. Массивы) можно использовать оператор ‘+=’ для добавления к предыдущему значению переменной. Это относится к аргументам встроенных команд, таких как declare , которые принимают операторы присваивания (команды объявления). Когда ‘+=’ применяется к переменной, для которой установлен атрибут integer, значение вычисляется как арифметическое выражение и добавляется к текущему значению переменной, которое также вычисляется. Когда ‘+=’ применяется к массивному переменной с использованием составного присваивания (см. Массивы), значение переменной не сбрасывается (как при использовании ‘=’), и новые значения добавляются в массив, начиная с индекса, на единицу больше максимального индекса массива (для индексированных массивов), или добавляются как дополнительные пары ключ-значение в ассоциативном массиве. При применении к переменной со строковым значением значение расширяется и добавляется к значению переменной.

Переменной можно присвоить атрибут nameref с помощью опции -n к встроенным командам declare или local (см. Команды встроенного интерпретатора Bash) для создания ссылочной переменной или ссылки на другую переменную. Это позволяет косвенно управлять переменными. Всякий раз, когда на переменную-ссылку ссылаются, присваивают значение, удаляют или изменяют её атрибуты (кроме использования или изменения самого атрибута ссылки), операция фактически выполняется над переменной, указанной значением переменной-ссылки. Ссылочная переменная обычно используется в функциях оболочки для ссылки на переменную, имя которой передаётся в качестве аргумента функции. Например, если имя переменной передаётся в функцию оболочки в качестве первого аргумента, выполнение

declare -n ref=$1

внутри функции создаёт переменную-ссылку ref, значением которой является имя переменной, переданное в качестве первого аргумента. Ссылки и присваивания к ref, а также изменения её атрибутов обрабатываются как ссылки, присваивания и изменения атрибутов переменной, имя которой было передано в качестве $1.

Если управляющая переменная в цикле for имеет атрибут ссылки, список слов может быть списком переменных оболочки, и ссылка на имя будет установлена для каждого слова в списке по очереди при выполнении цикла. Массивные переменные не могут быть присвоены атрибуту ссылки. Однако переменные-ссылки могут ссылаться на массивы и подстрочные массивы. Ссылки можно удалить с помощью опции -n к встроенной команде unset (см. Встроенные команды оболочки Bourne). В противном случае, если unset выполняется с именем переменной-ссылки в качестве аргумента, переменная, на которую ссылается переменная-ссылка, будет удалена.

  • Позиционные параметры
  • Специальные параметры

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/Shell-Parameters.html

Spec-Zone.ru

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