BASH Программирование

Экспорт переменных Bash

Экспорт переменных Bash
Понимание переменных в оболочке Bash необходимо для профессиональной работы с Linux. Это одно из ключевых требований для программирования, а также для достижения уровня 1 сертификации профессионального института Linux (LPIC) [2].

Ранее опубликованная статья Фахмиды Есмин [4] дает вам прекрасное введение в переменные Bash. Здесь мы сделаем шаг дальше и объясним, как объявить переменные в Bash таким образом, чтобы вы могли использовать их в других средах в вашей системе Linux, и какие соответствующие побочные эффекты вы должны принять во внимание.

Краткое описание Bash

Оболочка Bash была впервые выпущена в 1989 году и использовалась в качестве оболочки входа по умолчанию для большинства дистрибутивов Linux. Брайан Фокс написал Bash как оболочку UNIX и командный язык для проекта GNU в качестве бесплатной замены оболочки Bourne. Это аббревиатура от Bourne Again Shell. Bash в значительной степени совместим с ш и включает в себя полезные функции оболочки Korn кш и оболочка C csh [6].

В то время как операционная система GNU предоставляет другие оболочки, включая версию csh, Bash - интерактивная оболочка по умолчанию. Он разработан с учетом переносимости и в настоящее время работает почти во всех версиях UNIX и других операционных системах [9].

Вкратце о переменных Bash

Переменные - важные компоненты языков программирования. На них ссылаются и ими манипулируют в компьютерной программе. Проще говоря, переменные представляют собой именованные ячейки памяти. В Bash это то же самое, что и на любом языке программирования. Это позволяет нам, людям и пользователям компьютера, сохранять значения в «мозгу» компьютера и снова находить их по присвоенному имени переменной.

Термин «переменная» относится к комбинированной форме двух слов, i.е., варьировать + способно, что означает, что его значение может быть изменено, и его можно использовать несколько раз. В отличие от этого переменные, которые нельзя изменить, называются константами. [10]

Пока для вашего скрипта достаточно памяти, вы можете свободно создавать и использовать переменные. Вы можете просто установить их, указав имя переменной, а затем присвоив ее значение. Имя переменной в Bash может включать буквы, цифры и символы подчеркивания. Его имя можно начинать с буквы и подчеркивания, только. Допустимые имена переменных: size, tax5 и _tax20, но не 5rules.

Значение переменной в Bash может содержать число, один символ, строку символов или список элементов (называемый массивом). У него нет видимого типа данных, и внутренний тип данных переменной будет автоматически вычисляться (или производиться) после присвоения значения. Кроме того, нет необходимости объявлять переменную - присвоение значения ее ссылке автоматически создаст переменную. Пример сценария Bash ниже демонстрирует это для присвоения строки и присвоения числового номера.

#! / bin / bash
welcomeMessage = "Привет, мир!!"
echo $ welcomeMessage
цена = 145
эхо $ цена

Соглашения об именах переменных Bash

Нет фиксированных правил написания имен переменных, только условные обозначения. Используются следующие условные обозначения:

Для глобальных ИТ-компаний принято работать с руководствами по стилю, чтобы обеспечить единый стиль программирования в компании. См. Developer Editor для IBM и Руководство по стилю Google [3] для получения дополнительной информации о соглашениях, которым они следуют.

Переменная видимость

По умолчанию переменная локально привязана к структуре, функции, сценарию или процессу и не может быть доступна извне. В приведенном ниже примере показано это для переменной $ message, принадлежащей сценарию, и $ welcome, принадлежащей функции outputWelcomeMessage ().

#!/ bin / bash
# определяем сообщение переменной для скрипта
message = ”Здравствуйте, еще раз!”
outputWelcomeMessage ()
# определить локальную переменную
добро пожаловать = ”Привет!”
echo $ добро пожаловать

outputWelcomeMessage () # выводит Hello!
echo $ message # выводит Привет, еще раз!

Чтобы убедиться, что ранее определенная переменная с тем же именем локально привязана, используйте ключевое слово local, как показано ниже. Без ключевого слова local присвоение в строке 8 относилось бы к глобально определенной переменной с тем же именем, которое было определено ранее.

#!/ bin / bash
# определяем сообщение переменной для скрипта
message = ”Привет, еще раз!”
outputWelcomeMessage ()
# определить локальную переменную с тем же именем
Местное сообщение = «Привет!”
эхо $ сообщение

outputWelcomeMessage () # выводит Hello!
echo $ message # выводит Привет, еще раз!

Расширение области действия переменной

Чтобы сделать внутреннюю переменную видимой для других дочерних процессов, необходим дополнительный шаг. Этот шаг называется экспортом переменной. Bash предлагает использовать экспорт ключевых слов, за которым следует имя переменной. Приведенный ниже листинг демонстрирует это для переменной backupPath.

$ backupPath = "/ opt / backup /"
$ экспорт backupPath

Команда экспорта - это встроенная оболочка, которая используется для определения переменной как той, которую наследуют подоболочки (оболочки, порожденные из оригинала). Экспортируемые переменные могут быть прочитаны и записаны более чем одним процессом, тогда.

Второй вариант - объявить переменную как переменную среды с самого начала. Вы можете сделать это, используя ключевое слово declare, за которым следует параметр «-x» (см. [5] для получения дополнительной информации о команде declare). Эффект аналогичен команде экспорта, представленной ранее.

$ declare -x BACKUPPATH = "/ opt / backup /"

Наследовать от других сеансов

Когда вы выполняете программу, она автоматически наследует свои переменные среды от родительского процесса. Например, если $ HOME установлен в / root в родительском элементе, тогда дочерняя переменная $ HOME также будет установлена ​​в / root.

Дальнейшие команды

Среди прочего, в Linux есть полезные команды и параметры, относящиеся к переменным. Первые два называются env и printenv. Они перечисляют все переменные среды.

На изображении ниже показан вывод команды env в терминале, который запускается в X-сеансе. Он содержит такие переменные, как $ XTERM (тип терминала), $ SHELL (программа, которая вызывается при входе в систему и показывает / bin / bash для пути к интерпретатору Bash), $ LS_COLORS (цвета, которые используются для выделения различных файлов. типы при вызове ls) и $ DESKTOP_SESSION (текущая среда рабочего стола X).

Третий и четвертый - параметры команды экспорта - -p и -n. -p - это сокращение от print и просто отображает все экспортированные переменные в текущей оболочке с помощью команды объявления.

$ export -p
объявить -x DESKTOP_SESSION = "xfce"
объявить -x DISPLAY = ": 0"
объявить -x GLADE_CATALOG_PATH = ":"
объявить -x GLADE_MODULE_PATH = ":"
объявить -x GLADE_PIXMAP_PATH = ":"
объявить -x HOME = "/ home / frank"
объявить -x LANG = "de_DE.UTF-8 "

Параметр -n используется для отключения переменной среды. Приведенный ниже листинг демонстрирует это для ранее определенной переменной BACKUPPATH.

$ экспорт -n BACKUPPATH

Заключение

Bash - очень умная, но иногда и немного сложная среда. Переменные контролируют взаимодействие различных инструментов. Экспорт переменных помогает взаимодействовать между процессами и прост в использовании в повседневной жизни.

Об авторах

Жаки Кабета - защитник окружающей среды, заядлый исследователь, тренер и наставник. В нескольких африканских странах она работала в ИТ-индустрии и в среде НПО.

Франк Хофманн - ИТ-разработчик, тренер и автор, предпочитающий работать из Берлина, Женевы и Кейптауна. Соавтор книги по управлению пакетами Debian, доступной на dpmb.org

Ссылки и ссылки

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...