Programování BASH

Export proměnných Bash

Export proměnných Bash
Porozumění proměnným v prostředí Bash je zásadní pro profesionální práci s Linuxem. Je to jeden z klíčových požadavků na programování a dosažení úrovně Linux Professional Institute Certification (LPIC) úrovně 1 [2].

Dříve publikovaný článek Fahmidy Yesmina [4] vám přináší úžasný úvod do proměnných Bash. Tady jsme krok dále a vysvětlíme, jak deklarovat proměnné v Bash takovým způsobem, že je můžete použít v jiných prostředích v systému Linux, a jaké odpovídající vedlejší účinky musíte vzít v úvahu.

Stručný popis Bash

Bash shell byl poprvé vydán v roce 1989 a byl používán jako výchozí přihlašovací shell pro většinu distribucí Linuxu. Brian Fox napsal Bash jako unixový shell a příkazový jazyk pro projekt GNU jako bezplatnou softwarovou náhradu za shell Bourne. Je to zkratka pro Bourne Again Shell. Bash je do značné míry kompatibilní s sh a obsahuje užitečné funkce z prostředí Korn ksh a C shell csh [6].

Zatímco operační systém GNU poskytuje další skořápky, včetně verze csh, Bash je výchozí interaktivní prostředí. Je navržen s ohledem na přenositelnost a aktuálně běží téměř na všech verzích systému UNIX a dalších operačních systémech [9].

Stručně řečeno, proměňujte proměnné

Proměnné jsou základní součástí programovacích jazyků. Jsou odkazovány a manipulovány v počítačovém programu. Jednoduše řečeno, proměnné představují pojmenované paměťové buňky. To je stejné v Bash jako v jakémkoli programovacím jazyce. To nám jako lidem a uživatelům počítače umožňuje ukládat hodnoty do „mozku“ počítače a znovu je najít pomocí přiřazeného názvu proměnné.

Termín proměnná označuje kombinovanou formu dvou slov, tj.E., vary + schopný, což znamená, že jeho hodnotu lze změnit a lze ji použít několikrát. Na rozdíl od toho se proměnné, které nelze změnit, nazývají konstanty. [10]

Pokud je pro váš skript k dispozici dostatek paměti, můžete libovolně vytvářet a používat proměnné. Můžete je jednoduše nastavit definováním názvu proměnné a následným přiřazením její hodnoty. Název proměnné v Bash může obsahovat písmena, číslice a podtržítka. Jeho název lze začít pouze písmenem a podtržítkem. Platné názvy proměnných jsou size, tax5 a _tax20, ale ne 5 pravidel.

Hodnota proměnné v Bash může obsahovat číslo, jeden znak, řetězec znaků nebo seznam položek (tzv. Pole). Nemá viditelný datový typ a interní datový typ proměnné se automaticky zjistí (nebo odvodí) po přiřazení hodnoty. Dále není třeba proměnnou deklarovat - přiřazením hodnoty k jejímu odkazu se proměnná vytvoří automaticky. Níže uvedený příklad skriptu Bash to ukazuje pro přiřazení řetězce a přiřazení číselného čísla.

#! / bin / bash
welcomeMessage = "Hello World!"
echo $ welcomeMessage
cena = 145
echo $ cena

Pojmenování konvencí bashových proměnných

Neexistují žádná pevná pravidla pro pravopis názvů proměnných, pouze konvence. Používají se tyto konvence:

U globálních IT společností je běžné pracovat s průvodci styly, aby byl zajištěn společný styl kódování mezi společností. Další informace o pravidlech, kterými se řídí, najdete v Editorálu pro vývojáře pro IBM a v Průvodci stylem Google [3].

Proměnná viditelnost

Výchozí případ je, že proměnná je místně vázána na strukturu, funkci, skript nebo proces a nelze ji získat zvenčí. Níže uvedený příklad to ukazuje pro proměnnou $ message, která patří do skriptu, a $ welcome, které patří do funkce outputWelcomeMessage ().

#!/ bin / bash
# definujte proměnnou zprávu skriptu
message = ”Ahoj, ještě jednou!“
outputWelcomeMessage ()
# definujte lokální proměnnou
vítejte = ”Dobrý den!“
echo $ vítejte

outputWelcomeMessage () # prints Hello!
echo $ message # prints Dobrý den, znovu!

Chcete-li zajistit, aby dříve definovaná proměnná se stejným názvem byla místně vázána, použijte klíčové slovo local, jak je ukázáno dále. Bez klíčového slova local by se přiřazení v řádku 8 týkalo globálně definované proměnné se stejným názvem definovaným dříve.

#!/ bin / bash
# definujte proměnnou zprávu skriptu
message = ”Ahoj, ještě jednou!“
outputWelcomeMessage ()
# definujte lokální proměnnou se stejným názvem
Local message = ”Dobrý den!“
echo $ zpráva

outputWelcomeMessage () # prints Hello!
echo $ message # prints Dobrý den, znovu!

Rozšíření rozsahu proměnné

Aby byla interní proměnná viditelná pro ostatní podřízené procesy, je zapotřebí další krok. Tento krok se nazývá export proměnné. Bash nabízí použití exportu klíčových slov následovaných názvem proměnné. Níže uvedený seznam to ukazuje pro proměnnou backupPath.

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

Příkaz export je vestavěný shell, který se používá k definování proměnné jako proměnné, kterou zdědí subshelly (skořápky vytvořené z originálu). Proměnné, které jsou exportovány, lze poté číst a zapisovat více než jedním procesem.

Druhou možností je deklarovat proměnnou jako proměnnou prostředí hned od začátku. Můžete to udělat pomocí klíčového slova declare následovaného možností „-x“ (viz [5] pro více informací o příkazu declare). Efekt je podobný příkazu exportu, který byl zaveden dříve.

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

Dědit z jiných relací

Když spustíte program, automaticky zdědí jeho proměnné prostředí z nadřazeného procesu. Například pokud je $ HOME nastaven na / root v nadřazeném prvku, potom je proměnná $ HOME dítěte také nastavena na / root.

Další příkazy

Linux mimo jiné přichází s užitečnými příkazy a možnostmi, které se vztahují k proměnným. První dva se nazývají env a printenv. Uvádějí seznam všech proměnných prostředí.

Obrázek níže ukazuje výstup příkazu env v terminálu, který je spuštěn v relaci X. Obsahuje proměnné jako $ XTERM (typ terminálu), $ SHELL (program, který se volá po přihlášení a ukazuje / bin / bash pro cestu k interpretovi Bash), $ LS_COLORS (barvy, které se používají k zvýraznění jiného souboru typy při volání ls) a $ DESKTOP_SESSION (aktuální prostředí X Desktop).

Třetí a čtvrtá jsou možnosti příkazu pro export - -p a -n. -p je zkratka pro tisk a pouze zobrazí všechny exportované proměnné v aktuálním prostředí pomocí příkazu declare.

$ export -p
deklarovat -x DESKTOP_SESSION = "xfce"
deklarovat -x DISPLAY = ": 0"
deklarovat -x GLADE_CATALOG_PATH = ":"
deklarovat -x GLADE_MODULE_PATH = ":"
deklarovat -x GLADE_PIXMAP_PATH = ":"
deklarovat -x HOME = "/ home / frank"
deklarovat -x LANG = "de_DE.UTF-8 "

Možnost -n se používá k deaktivaci proměnné prostředí. Níže uvedený seznam to ukazuje u dříve definované proměnné BACKUPPATH.

$ export -n BACKUPPATH

Závěr

Bash je velmi chytré, ale někdy i trochu složité prostředí. Proměnné řídí, jak různé nástroje interagují. Export proměnných pomáhá při komunikaci mezi procesy a je snadno použitelný v každodenním životě.

O autorech

Jacqui Kabeta je ekolog, vášnivý výzkumník, trenér a mentor. V několika afrických zemích pracovala v IT průmyslu a prostředí nevládních organizací.

Frank Hofmann je IT vývojář, trenér a autor a dává přednost práci z Berlína, Ženevy a Kapského Města. Spoluautor knihy Debian Package Management Book, která je k dispozici u dpmb.org

Odkazy a reference

Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...
Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...
Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...