Predtým publikovaný článok Fahmidy Yesmina [4] vám ponúka úžasný úvod do premenných Bash. Tu postupujeme ďalej a vysvetľujeme, ako deklarovať premenné v Bash tak, aby ste ich mohli používať v iných prostrediach vášho systému Linux, a ktoré zodpovedajúce vedľajšie účinky musíte brať do úvahy.
Stručný popis Bash
Bash shell bol prvýkrát uvedený na trh v roku 1989 a bol používaný ako predvolený prihlasovací shell pre väčšinu distribúcií Linuxu. Brian Fox napísal Bash ako shell UNIX a príkazový jazyk pre projekt GNU ako bezplatnú náhradu softvéru za shell Bourne. Je to skratka pre Bourne Again Shell. Bash je do značnej miery kompatibilný s š a obsahuje užitočné funkcie škrupiny Korn ksh a škrupina C csh [6].
Zatiaľ čo operačný systém GNU poskytuje ďalšie škrupiny, vrátane verzie Windows 7 csh, Bash je predvolený interaktívny shell. Je navrhnutý s ohľadom na prenosnosť a v súčasnosti beží na takmer všetkých verziách systému UNIX a na iných operačných systémoch [9].
Bash premenné v skratke
Premenné sú základnou súčasťou programovacích jazykov. Odkazuje sa na ne a manipuluje sa s nimi v počítačovom programe. Jednoducho povedané, premenné predstavujú pomenované pamäťové bunky. V Bashi je to rovnaké ako v ktoromkoľvek programovacom jazyku. To nám ako ľuďom a používateľom počítača umožňuje ukladať hodnoty do „mozgu“ počítača a nájsť ich znova pomocou priradeného názvu premennej.
Pojem premenná označuje kombinovanú formu dvoch slov, t.e., vary + schopný, čo znamená, že jeho hodnotu je možné zmeniť, a možno ju použiť viackrát. Na rozdiel od toho sa premenné, ktoré sa nedajú zmeniť, nazývajú konštanty. [10]
Pokiaľ je pre váš skript k dispozícii dostatok pamäte, môžete ľubovoľne vytvárať a používať premenné. Môžete ich jednoducho nastaviť definovaním názvu premennej a následným priradením jej hodnoty. Názov premennej v jazyku Bash môže obsahovať písmená, číslice a podčiarkovníky. Jeho názov možno začať iba písmenom a podčiarkovníkom. Platné názvy premenných sú size, tax5 a _tax20, ale nie 5 pravidiel.
Hodnota premennej v jazyku Bash môže obsahovať číslo, jeden znak, reťazec znakov alebo zoznam položiek (nazývaných pole). Nemá viditeľný dátový typ a interný dátový typ premennej sa automaticky zistí (alebo odvodí) po priradení hodnoty. Ďalej nie je potrebné deklarovať premennú - priradením hodnoty k jej odkazu sa premenná vytvorí automaticky. Nasledujúci príklad skriptu Bash to demonštruje pre priradenie reťazca a priradenie číselného čísla.
#! / bin / bashwelcomeMessage = "Hello World!„
echo $ welcomeMessage
cena = 145
echo $ cena
Pomenovanie konvencií Bashových premenných
Neexistujú žiadne pevné pravidlá pravopisu názvov premenných, iba konvencie. Používajú sa tieto konvencie:
- Názvy malých písmen - premenné, ktoré sú miestne pre skript alebo funkciu.
Nezáleží na tom, či sa jedná o špaldové malé písmená / prípad hada [8] alebo štýl puzdra ťavy [7]. Vyššie uvedený príklad používa štýl puzdra pre ťavy. - Názvy veľkých písmen - konštanty, premenné prostredia, zabudované premenné shellu.
Pamätajte, že tieto premenné už môžu byť použité inými programami. Príklady sú $ PATH, $ LANG, $ PWD, $ PS4 a $ SHELL.
Pre globálne IT spoločnosti je bežné pracovať so sprievodcami štýlmi, aby sa zabezpečil spoločný štýl kódovania medzi spoločnosťami. Ďalšie informácie o konvenciách, ktoré dodržiavajú, nájdete v Redakčnom článku pre vývojárov pre IBM a v Sprievodcovi štýlmi Google [3].
Variabilná viditeľnosť
Predvoleným prípadom je, že premenná je lokálne viazaná na štruktúru, funkciu, skript alebo proces a mimo nej nie je možné získať prístup. Nasledujúci príklad to ukazuje pre premennú $ message, ktorá patrí k skriptu, a $ welcome, ktoré patria k funkcii outputWelcomeMessage ().
#!/ bin / bash# definuje premennú správu pre skript
message = ”Dobrý deň, ešte raz!“
outputWelcomeMessage ()
# definovať lokálnu premennú
Vitajte = ”Dobrý deň!“
echo $ vitajte
outputWelcomeMessage () # prints Hello!
echo $ message # prints Ahoj, ešte raz!
Aby ste sa ubezpečili, že predtým definovaná premenná s rovnakým názvom je lokálne viazaná, použite kľúčové slovo local, ako je uvedené ďalej. Bez kľúčového slova local by sa priradenie v riadku 8 vzťahovalo na globálne definovanú premennú s rovnakým názvom definovaným skôr.
#!/ bin / bash# definuje premennú správu pre skript
message = ”Dobrý deň, ešte raz!“
outputWelcomeMessage ()
# definujte lokálnu premennú s rovnakým názvom
Local message = ”Dobrý deň!“
echo $ správa
outputWelcomeMessage () # prints Hello!
echo $ message # prints Dobrý deň, ešte raz!
Rozšírenie rozsahu premennej
Aby bola vnútorná premenná viditeľná pre ďalšie podradené procesy, je potrebný ďalší krok. Tento krok sa nazýva export premennej. Bash ponúka použitie exportu kľúčového slova nasledovaného názvom premennej. Nasledujúci zoznam to ukazuje pre premennú backupPath.
$ backupPath = ”/ opt / backup /”$ export backupPath
Príkaz export je vstavaný shell, ktorý sa používa na definovanie premennej ako takej, ktorú dedia podškrupiny (škrupiny vytvorené z originálu). Premenné, ktoré sa exportujú, je potom možné čítať a zapisovať viac ako jedným procesom.
Druhou možnosťou je deklarovať premennú ako premennú prostredia hneď od začiatku. Môžete to urobiť pomocou kľúčového slova declare, za ktorým nasleduje voľba „-x“ (ďalšie informácie o príkaze declare nájdete v [5]). Efekt je podobný príkazu na export, ktorý bol zavedený predtým.
$ declare -x BACKUPPATH = ”/ opt / backup /”Dedí z iných relácií
Keď spustíte program, automaticky dedí svoje premenné prostredia z nadradeného procesu. Napríklad ak je $ HOME nastavený na / root v rodičovi, potom je premenná $ HOME dieťaťa tiež nastavená na / root.
Ďalšie príkazy
Linux okrem iného prichádza s užitočnými príkazmi a možnosťami, ktoré sa týkajú premenných. Prvé dva sa nazývajú env a printenv. Uvádzajú všetky premenné prostredia.
Obrázok nižšie zobrazuje výstup príkazu env v termináli, ktorý je spustený v relácii X. Obsahuje premenné ako $ XTERM (typ terminálu), $ SHELL (program volaný po prihlásení a ukazuje / bin / bash pre cestu k interpretovi Bash), $ LS_COLORS (farby, ktoré sa používajú na zvýraznenie iného súboru) typy pri volaní ls) a $ DESKTOP_SESSION (súčasné X Desktop Environment).
Tretia a štvrtá z nich sú možnosti príkazu na export - -p a -n. -p je skratka pre tlač a pomocou príkazu declare iba zobrazí všetky exportované premenné v aktuálnom prostredí.
$ export -pdeklarovať -x DESKTOP_SESSION = "xfce"
deklarovať -x DISPLAY = ": 0"
deklarovať -x GLADE_CATALOG_PATH = ":"
deklarovať -x GLADE_MODULE_PATH = ":"
deklarovať -x GLADE_PIXMAP_PATH = ":"
vyhlásiť -x HOME = "/ home / frank"
deklarovať -x LANG = "de_DE.UTF-8 "
Voľba -n sa používa na zrušenie nastavenia premennej prostredia. Nižšie uvedený zoznam to demonštruje pre predtým definovanú premennú BACKUPPATH.
$ export -n BACKUPPATHZáver
Bash je veľmi šikovné, ale niekedy aj trochu zložité prostredie. Premenné riadia interakciu rôznych nástrojov. Export premenných pomáha pri komunikácii medzi procesmi a je ľahko použiteľný v každodennom živote.
O autoroch
Jacqui Kabeta je environmentalistka, zanietená výskumníčka, trénerka a mentorka. Vo viacerých afrických krajinách pracovala v IT priemysle a v prostredí mimovládnych organizácií.
Frank Hofmann je IT vývojár, tréner a autor a najradšej pracuje z Berlína, Ženevy a Kapského Mesta. Spoluautor knihy Debian Package Management Book, ktorá je k dispozícii na stránke dpmb.org
Odkazy a referencie
- [1] Programovanie Bash, premenné, https: // tldp.org / HOWTO / Bash-Prog-Intro-HOWTO-5.html
- [2] Linux Professional Institute LPIC-1, https: // www.lpi.org / naše-certifikácie / lpic-1-prehľad
- [3] Sprievodca štýlom Google Shell, názvy premenných, https: // google.github.io / styleguide / shellguide.html # s7-pomenovanie-konvencie
- [4] Fahmida Yesmin: Ako používať premenné v programovaní Bash, https: // linuxhint.com / variables-bash-programovanie /
- [5] The Bash Hackers Wiki, https: // wiki.bash-hackeri.org /
- [6] The Bash, Wikipedia, https: // en.wikipedia.org / wiki / Bash_ (Unix_shell)
- [7] Camel Case, Wikipedia, https: // en.wikipedia.org / wiki / Camel_case
- [8] Snake Case, Wikipedia, https: // en.wikipedia.org / wiki / Snake_case
- [9] Čo je Bash. https: // www.gnu.org / software / bash / manual / html_node / What-is-Bash_003f.html
- [10] Používanie premenných v Bash https: // opensource.com / article / 19/8 / using-variables-bash
- Pochopenie základných prvkov programovania https: // www.linuxjournal.com / content / understand-bash-elements-programovanie
- Bash premenné https: // www.javatpoint.com / bash-premenné