Использование переменных оболочки
Переменные оболочки предназначены для временного хранения строковых значений. Память, необходимая для размещения значений переменных, вы- деляется оболочкой динамически по мере надобности.
Все переменные оболочки хранят строки. Однако переменные, значения ко- торых представляют собой целые числа, допускают выполнение простейших арифметических операций (пример 10.6).
Пример 10.6. Вычисление арифметических выражений в Bash |
$ V1=10
$ echo $(( V1+1 )) 11
Имя переменной должно использовать только символы английского алфави- та, цифры и символ подчеркивания. Имя переменной должно начинаться ли- бо с буквы, либо с символа подчеркивания. Имена переменных чувствитель- ны к регистру.
Для исключения неверной интерпретации оболочкой командной строки, в которой непосредственно за именем переменной следует некоторый символ, можно отделить имя переменной с помощью фигурных скобок (пример 10.7).
Пример 10.7. Экранирование имени переменной |
$ f1=str
$ echo $f1 str
$ echo $f11
$ echo ${f1}1 str1
В примере 10.7 переменной f1 присвоено значение str. Добавить к строке str символ 1 нельзя без экранирования имени переменной фигурными скоб- ками, т. к. иначе оболочка пытается вывести значение переменной f11.
Имеется возможность использовать значение по умолчанию для переменной. Если переменная определена, то используется ее значение. В противном слу- чае используется значение по умолчанию (пример 10.8).
Пример 10.8. Значения по умолчанию |
$ V1=abcdef
$ echo ${V1:-09876} abcdef
$ echo ${V2:-09876} 09876
$ echo $V1 abcdef
$ echo $V2
В примере 10.9 переменная V1 определена, а V2 — нет. Поэтому для перемен- ной V1 конструкция (значение по умолчанию) ${V1:-09876} дает значение переменной, а для V2 — возвращает значение по умолчанию 09876. Собст- венно значения переменных V1 и V2 не изменяются.
Если же необходимо назначить переменной значение по умолчанию в случае, когда она не определена, следует использовать конструкцию ${перемен- ная:=значение} (пример 10.9).
Пример 10.9. Установка значения по умолчанию |
$ echo ${V2:=12345} 12345
$ echo $V2 12345
Так как переменная V2 в примере 10.9 не была определена, то вместо нее бы- ло использовано значение 12345, которое при этом было назначено этой пе- ременной.
При необходимости использовать вместо определенной переменной заданную строку применяют конструкцию ${переменная:+значение} (пример 10.10).
Пример 10.10. Замещение значением по умолчанию |
$ echo ${V2:+'nu i dela...'} nu i dela...
Здесь вместо установленного значения переменной была использована стро- ка — значение по умолчанию.
Дата добавления: 2015-06-12; просмотров: 647;