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

Експортиране на променливи Bash

Експортиране на променливи Bash
Разбирането на променливите в черупката на Bash е от съществено значение при професионалната работа с Linux. Това е едно от ключовите изисквания за програмиране, както и за постигане на сертифициране на Linux Professional Institute (LPIC) ниво 1 [2].

Публикуваната по-рано статия от Fahmida Yesmin [4] ви дава чудесно въведение в променливите на Bash. Тук стъпваме по-нататък и обясняваме как да декларирате променливи в Bash по такъв начин, че да можете да ги използвате в други среди на вашата Linux система и кои съответни странични ефекти трябва да вземете под внимание.

Кратко описание на Баш

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

Докато операционната система GNU предоставя други черупки, включително версия на csh, Bash е интерактивната обвивка по подразбиране. Проектиран е с мисъл за преносимост и в момента работи на почти всяка версия на UNIX плюс други операционни системи [9].

Баш променливи накратко

Променливите са основни компоненти на програмните езици. Те се препращат и манипулират в компютърна програма. Най-просто казано, променливите представляват име на клетки с памет. Това е същото в Bash, както във всеки език за програмиране. Това дава възможност на нас като хора и потребители на компютъра да съхраняваме стойности в „мозъка“ на компютъра и да ги намираме отново чрез зададеното име на променливата.

Терминът променлива се отнася до комбинирана форма от две думи, т.е.д., варира + може, което означава, че стойността му може да се променя и може да се използва няколко пъти. За разлика от това, променливите, които не могат да бъдат променяни, се наричат ​​константи. [10]

Докато има достатъчно памет за вашия скрипт, можете свободно да създавате и използвате променливи. Можете просто да ги зададете, като дефинирате име на променлива и след това присвоите нейната стойност. Името на променлива в Bash може да включва букви, цифри и долни черти. Името му може да започне само с буква и долна черта. Валидни имена на променливи са размер, данък5 и _tax20, но не 5 правила.

Стойността на променлива в Bash може да съдържа число, единичен знак, низ от символи или списък с елементи (наречен масив). Той няма видим тип данни и вътрешният тип данни на променливата ще бъде автоматично разбран (или изведен) при присвояване на стойност. Освен това не е необходимо да се декларира променливата - присвояването на стойност на препратката ще създаде променливата автоматично. Примерът Bash скрипт по-долу демонстрира това за присвояване на низ и присвояване на числови номера.

#! / bin / bash
welcomeMessage = "Здравей, Свят!"
echo $ welcomeMessage
цена = 145
ехо $ цена

Конвенции за именуване на променливи на Bash

Няма фиксирани правила за изписване на имена на променливи, а само конвенции. Използват се тези конвенции:

За глобалните ИТ компании е обичайно да работят с ръководства за стил, за да осигурят общ стил на кодиране сред компанията. Вижте редакцията за разработчици за IBM и ръководството на Google за стил [3] за повече информация относно конвенциите, които спазват.

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

Случаят по подразбиране е, че променлива е локално свързана със структура, функция, скрипт или процес и не може да бъде достъпна извън нея. Примерът по-долу показва това за променливата $ message, която принадлежи на скрипта, и $ welcome, която принадлежи към функцията outputWelcomeMessage ().

#!/ bin / bash
# дефинирайте променливо съобщение към скрипта
message = ”Здравейте, отново!”
outputWelcomeMessage ()
# дефинирайте локална променлива
добре дошли = ”Здравейте!”
echo $ добре дошъл

outputWelcomeMessage () # печата Здравейте!
echo $ message # prints Здравейте, отново!

За да сте сигурни, че предварително дефинирана променлива със същото име е локално обвързана, използвайте ключовата дума local, както е показано по-нататък. Без ключовата дума local заданието в ред 8 би се отнасяло до глобално дефинираната променлива със същото име, дефинирано по-рано.

#!/ bin / bash
# дефинирайте променливо съобщение към скрипта
message = ”Здравейте, отново!”
outputWelcomeMessage ()
# дефинирайте локална променлива със същото име
Локално съобщение = ”Здравейте!”
echo $ message

outputWelcomeMessage () # печата Здравейте!
echo $ message # prints Здравейте, отново!

Разширяване на обхвата на променлива

За да се направи вътрешна променлива видима за други дъщерни процеси, е необходима допълнителна стъпка. Тази стъпка се нарича експортиране на променлива. Bash предлага използването на ключовата дума export, последвано от името на променливата. Списъкът по-долу демонстрира това за променливата backupPath.

$ backupPath = ”/ opt / backup /”
$ export backupPath

Командата за експортиране е вградена черупка, която се използва за дефиниране на променливата като такава, която наследява под-черупки (обвивки, породени от оригинала). Тогава променливите, които се експортират, могат да се четат и записват от повече от един процес.

Вторият вариант е да декларирате променливата като променлива на околната среда още от самото начало. Можете да направите това, като използвате ключовата дума declare, последвана от опцията “-x” (вижте [5] за повече информация относно командата за деклариране). Ефектът е подобен на командата за експортиране, въведена преди това.

$ 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 и просто показва всички експортирани променливи в текущата обвивка с помощта на командата declare.

$ износ -p
декларирам -x DESKTOP_SESSION = "xfce"
декларирайте -x DISPLAY = ": 0"
декларира -x GLADE_CATALOG_PATH = ":"
декларирам -x GLADE_MODULE_PATH = ":"
декларира -x GLADE_PIXMAP_PATH = ":"
декларирайте -x НАЧАЛО = "/ начало / откровено"
декларирайте -x LANG = "de_DE.UTF-8 "

Опцията -n се използва за премахване на променлива на околната среда. Списъкът по-долу демонстрира това за предварително дефинираната променлива BACKUPPATH.

$ export -n BACKUPPATH

Заключение

Баш е много умна, но понякога и малко сложна среда. Променливите контролират как взаимодействат различните инструменти. Експортирането на променливи помага за комуникацията между процесите и е лесно за използване в ежедневието.

Относно авторите

Jacqui Kabeta е природозащитник, запален изследовател, треньор и ментор. В няколко африкански държави тя е работила в ИТ индустрията и средите на НПО.

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

Връзки и справки

Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...