#Linux - Как назначать и использовать переменные окружения в Linux?

Он записывается как знак равно **«=».** Слева от оператора присваивания должно быть указано имя переменной, а справа – её значение.

2018.09.05                    


1.jpeg Предмет изучения данного урока должен быть знаком тем, кто имеет хотя бы начальные навыки программирования. Переменные в командных интерпретаторах Linux, аналогично высокоуровневым языкам программирования, сохраняют простые данные для дальнейшего использования. При этом доступ к информации, хранящейся в переменной, осуществляется по её имени.

Чтобы создать переменную используйте оператор присваивания. Он записывается как знак равно «=». Слева от оператора присваивания должно быть указано имя переменной, а справа – её значение. Имя может содержать только латинские буквы, числа и знак подчеркивания. При этом оно должно начинаться только с буквы или знака подчеркивания. Выражение записывается как «имя_переменной=значение». Между оператором присваивания, именем и значением не допускается наличие пробельных символов.

kart2.jpeg

Как видно из примера, приведенного выше, получение значения переменной происходит с помощью знака «$», после которого указывается её имя. Мы частично затронули данный механизм подстановки в предыдущем уроке.

Linux позволяет использовать переменные оболочки в математических операциях, для указания параметров и опций команд, а также при формировании значений новых переменных. Если вам нужно сохранить в переменной текст, содержащий специальные символы или пробелы, используйте одинарные или двойные кавычки. Это заблокирует их интерпретацию и позволит осуществить запись информации как есть.

kart3.jpeg

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

Локальные и глобальные переменные

Командные интерпретаторы Linux следуют устоявшимся в языках программирования правилам и разграничивают переменные на два типа: локальные и глобальные. Есть масса отличий в принципах доступа к их значениям. Согласно профессиональной литературе, а также по устоявшемуся сленгу, локальные переменные принято называть «оболочковыми», а глобальные – «переменными окружения».

Локальная переменная существует в текущей области видимости. Вы можете использовать её значение как параметр команды, но запущенная программа не сможет получить к ней доступ напрямую. Глобальные переменные окружения отличаются от обычных тем, что любая пользовательская или системная программа может получить доступ к её значению. Тем самым глобальные переменные могут влиять на логику выполнения программ.

Для работы с переменными существует ряд функций. Некоторые из них позволяют осуществлять одни и те же операции. Изначально любая переменная создается как локальная, но её можно сделать глобальной с помощью команды export. Ознакомьтесь с примером, приведенным ниже.

kart4.jpeg

Постоянные переменные окружения

Linux позволяет создавать переменные окружения, доступные при каждом запуске консоли. Их значения могут быть получены в любом окне и внутри пользовательских программ. Для этого существует ряд конфигурационных файлов. Терминал подгружает и инициализирует их содержимое автоматически. Эти конфигурационные файлы используются в различных ситуациях. Ознакомьтесь с описанием, приведенным ниже.

kart5.jpeg

Встроенные системные переменные

По умолчанию Linux добавляет некоторые системные переменные при запуске окна терминала. Весь список можно увидеть с помощью ввода команды printenv. Они являются глобальными и доступны внутри любой программы. Мы рассмотрим краткий список самых важных системных переменных.

Список системных переменных:

BASH — расположение исполняемого файла командной оболочки.

HOME — путь домашнего каталога текущего пользователя.

LOGNAME — логин текущего пользователя.

HOSTNAME — имя текущего компьютера.

OLDPWD — имя прошлой директории после перемещения.

PWD — имя текущей директории.

PATH — список директорий, просматриваемых командным интерпретатором на наличие затребованной программы. Если программа находится в такой директории, вы можете не указывать полный путь до исполняемого файла, а только её имя.