Proměnné se používají k ukládání hodnot různých typů během provádění programu. Ve skriptování Bash existují dva typy proměnných: globální a místní.

Globální proměnné mohou být použity všemi Bash skripty ve vašem systému, zatímco lokální proměnné mohou být použity pouze ve skriptu (nebo shellu), ve kterém jsou definovány.

Globální proměnné jsou obecně poskytovány v systému ve výchozím nastavení a jsou to hlavně proměnné prostředí a konfigurace. Lokální proměnné jsou naproti tomu uživatelem definované a mají libovolné použití.

Místní proměnné Bash

Chcete-li vytvořit proměnnou, musíte názvu proměnné přiřadit hodnotu. Bash je netypovaný jazyk, takže při definování proměnných nemusíte uvádět datový typ.

var1=Ahoj

Bash také umožňuje více přiřazení na jednom řádku:

a=6 b=8 c=9

Stejně jako mnoho jiných programovacích jazyků používá Bash operátor přiřazení = k přiřazení hodnot proměnným. Je důležité si uvědomit, že na obou stranách operátoru přiřazení by neměly být žádné mezery. V opačném případě se zobrazí chyba kompilace.

Příbuzný: Co znamená "Bash" v Linuxu?

Další klíčový bod k poznámce: Bash neumožňuje nejprve definovat proměnnou a poté jí přiřadit hodnotu. Při vytváření musíte proměnné přiřadit hodnotu.

var2 # chyba kompilace 
var2=Svět

Někdy může být nutné přiřadit k vaší proměnné řetězec, který má v sobě mezeru. V takovém případě uzavřete řetězec do uvozovek.

# var3=Ahoj světe 
# výše uvedený úkol nefunguje
var3='Ahoj světe'

Všimněte si použití jednoduchých uvozovek. Tyto uvozovky se také nazývají „silné uvozovky“, protože přiřazují hodnotu přesně tak, jak je napsána, bez ohledu na jakékoli speciální znaky.

Ve výše uvedeném příkladu jste také mohli použít dvojité uvozovky ("slabé uvozovky"), i když to neznamená, že je lze vždy použít zaměnitelně. Je to proto, že dvojité uvozovky nahradí speciální znaky (například znaky s $), místo toho, abychom je vykládali doslovně.

Viz příklad níže:

var4=89
echo "Číslo je $var4"
echo 'Číslo je $var4'
# První výstupní výtisky: 89
# Druhý výstup vytiskne ponechá "$var4" tak, jak je

Pokud chcete své proměnné přiřadit výstup příkazového řádku, použijte zpětné uvozovky (``). Řetězec v nich uzavřený budou považovat za příkaz terminálu a vrátí jeho výsledek.

var5="Právě pracujete v tomto adresáři: `pwd`"

Rozšíření parametrů v Bash

Rozšíření parametrů jednoduše odkazuje na přístup k hodnotě proměnné. Ve své nejjednodušší podobě používá speciální znak $ následovaný názvem proměnné (bez mezer mezi nimi):

var6=Jack
echo Jmenuji se $var6

Můžete také použít syntaxi ${variableName} pro přístup k hodnotě proměnné. Tato forma je vhodnější, pokud může dojít k nejasnostem kolem názvu proměnné.

m=Med
echo Med znamená ${m}ical

Pokud vynecháte složené závorky, ${m}ical bude interpretována jako složená proměnná (která neexistuje). Toto použití složených závorek s proměnnými je známé jako "substituce".

Globální proměnné

Jak již bylo zmíněno dříve, váš systém Linux má některé vestavěné proměnné, ke kterým lze přistupovat napříč všemi vašimi skripty (nebo shelly). K těmto proměnným se přistupuje pomocí stejné syntaxe jako k lokálním proměnným.

Příbuzný: Jak vytvářet a spouštět Bash skripty v Linuxu

Většina těchto proměnných je psána BLOKOVÝMI písmeny. Některé jsou však jednotlivé znaky, které nejsou ani alfanumerickými znaky.

Zde jsou některé běžné užitečné globální proměnné:

DOMOV: Poskytuje domovský adresář uživatele

SHELL:Poskytuje typ shellu, který používáte (např. Bash, csh..atd)

?: Poskytuje stav ukončení předchozího příkazu

Chcete-li získat seznam globálních proměnných ve vašem systému, spusťte příkaz printenv (nebo env) příkaz:

$ printenv 

Smyčky ve skriptování Bash

Nyní víte, co jsou proměnné, jak je přiřadit a jak pomocí nich provádět základní Bash logiku.

Smyčky umožňují procházet více příkazy. Bash vyhoví pro smyčky a zatímco smyčky s jednoduchou syntaxí pro všechny vaše potřeby smyčkování.

Pokud ovládáte umění vývoje Bash, pro smyčky by měly být další na vašem seznamu.

Jak používat for Loop ve skriptu Linux Bash Shell

Proč spouštět stejný kód znovu a znovu ve vašem shell skriptu, když můžete mít cyklus for, který to udělá za vás?

Přečtěte si další

PodíltweetE-mailem
Související témata
  • Programování
  • Linux Bash Shell
  • Tipy pro kódování
O autorovi
Jerome Davidson (Zveřejněno 34 článků)

Jerome je Staff Writer ve společnosti MakeUseOf. Zabývá se články o programování a Linuxu. Je také nadšencem do kryptoměn a neustále sleduje kryptoprůmysl.

Více od Jeroma Davidsona

Přihlaste se k odběru našeho newsletteru

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!

Chcete-li se přihlásit k odběru, klikněte sem