Unix / Linux - Использование переменных оболочки
В этой главе мы узнаем, как использовать переменные оболочки в Unix. Переменная - это строка символов, которой мы присваиваем значение. Присвоенное значение может быть числом, текстом, именем файла, устройством или любым другим типом данных.
Переменная - это не что иное, как указатель на фактические данные. Оболочка позволяет создавать, назначать и удалять переменные.
Имена переменных
Имя переменной может содержать только буквы (от a до z или от A до Z), цифры (от 0 до 9) или символ подчеркивания (_).
По соглашению переменные оболочки Unix будут иметь свои имена в ВЕРХНЕМ РЕГИСТРЕ.
Следующие примеры являются допустимыми именами переменных -
_ALI
TOKEN_A
VAR_1
VAR_2
Ниже приведены примеры недопустимых имен переменных -
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
Причина, по которой вы не можете использовать другие символы, такие как !, *, или же - в том, что эти символы имеют особое значение для оболочки.
Определение переменных
Переменные определяются следующим образом -
variable_name=variable_value
Например -
NAME="Zara Ali"
В приведенном выше примере определяется переменная NAME и присваивается ей значение «Zara Ali». Переменные этого типа называютсяscalar variables. Скалярная переменная может одновременно содержать только одно значение.
Shell позволяет вам хранить любое значение в переменной. Например -
VAR1="Zara Ali"
VAR2=100
Доступ к значениям
Чтобы получить доступ к значению, хранящемуся в переменной, поставьте перед ее именем знак доллара ($) -
Например, следующий скрипт получит доступ к значению определенной переменной NAME и распечатает его на STDOUT -
#!/bin/sh
NAME="Zara Ali"
echo $NAME
Приведенный выше сценарий выдаст следующее значение -
Zara Ali
Переменные только для чтения
Оболочка предоставляет способ пометить переменные как доступные только для чтения с помощью команды только для чтения. После того, как переменная помечена как доступная только для чтения, ее значение нельзя изменить.
Например, следующий скрипт генерирует ошибку при попытке изменить значение NAME -
#!/bin/sh
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"
Приведенный выше сценарий сгенерирует следующий результат -
/bin/sh: NAME: This variable is read only.
Удаление переменных
Снятие установки или удаление переменной предписывает оболочке удалить переменную из списка переменных, которые она отслеживает. После того, как вы отключите переменную, вы не сможете получить доступ к сохраненному в ней значению.
Ниже приведен синтаксис для отключения определенной переменной с помощью unset команда -
unset variable_name
Приведенная выше команда сбрасывает значение определенной переменной. Вот простой пример, демонстрирующий, как работает команда:
#!/bin/sh
NAME="Zara Ali"
unset NAME
echo $NAME
В приведенном выше примере ничего не печатается. Вы не можете использовать команду unset дляunset отмеченные переменные readonly.
Типы переменных
Когда оболочка запущена, присутствуют три основных типа переменных:
Local Variables- Локальная переменная - это переменная, которая присутствует в текущем экземпляре оболочки. Он недоступен для программ, запускаемых оболочкой. Они устанавливаются в командной строке.
Environment Variables- Переменная среды доступна любому дочернему процессу оболочки. Некоторым программам для правильной работы требуются переменные среды. Обычно сценарий оболочки определяет только те переменные среды, которые необходимы запускаемым им программам.
Shell Variables- Переменная оболочки - это специальная переменная, которая устанавливается оболочкой и требуется оболочке для правильной работы. Некоторые из этих переменных являются переменными среды, а другие - локальными.