Proměnné jsou vlastně takové "krabičky" do kterých se ukládají hodnoty (laicky řečeno). Jsou to tedy místa v paměti označená identifikátorem (názvem proměnné). Tento identifikátor představuje pro překladač/interpreter adresu místa v paměti, kde je uložena hodnota odpovídající proměnné. Samozřejmě hodnoty proměnných lze měnit. V bash
se proměnné deklarují např takto:
#!/bin/bash
x=5
echo "Hodnota proměnné x je $x."
Z příkladu je tedy dobře vidět, že proměnné se deklarují tím, že se jim přiřadí nějaká hodnota. Je to tedy obdobné jako v BASICu. Další řádka programu vytiskne na obrazovku (tedy pokud nepřesměrujeme výstup :-) větu Hodnota proměnné x je 5.
Z příkladu je též patrno, že k proměnné se přistupuje pomocí znaku symbolu dolaru ($) uvedeného před názvem proměnné. A ještě něco pro ty, kteří rádi mezery mezi =. V bash nesmí být u rovná se mezera! Proměnná x by se totiž brala jako příkaz a rovná se její parametr. Vzhledem k tomu, že příkaz x neexistuje, ohlásil by bash chybu. Používá se tedy zápis:
jméno_proměnné=hodnota_proměnné
Co se proměnných týče, obecně jsou v bash dva typy proměnných. Lokálních (platných pouze pro konkrétní spuštěný skript) a systémových (platných pro celý operační systém, které lze využít všemi programy v systému). Pokud by jste chtěli svou proměnnou udělat jako systémovou, musíte použít tento způsob deklarace:
#!/bin/bash
export x=5
nebo také
#!/bin/bash
x=5
export $x
Systémové proměnné se dají také využít. Například pro zjištění názvu interpretru, který je právě spuštěný:
xconsole$ echo $SHELL
/bin/bash
Systémové proměnné jsou většinou definovány v /etc/profile
a v ~/.bash_profile
. Příkaz echo
je dobrý právě ke zjišťování těchto proměnných. Chtěli-li by jste vypsat seznam všech systémových proměnných v systému, existuje příkaz env
, který tyto proměnné vypíše.