Proměnné
Na proměnné se lze dívat tak, že obsahují řetězce, že všechny proměnné existují a mají jako defaultní hodnotu přiřazen prázdný řetězec. Přirozeně ovšem považujeme za existující pouze proměnné, které mají přiřazenu jinou hodnotu.
Proměnnou X bash expanduje na její hodnotu pomocí expanze výrazu $X nebo
výrazu ${X}. Například hodnotu proměnné PATH zobrazíme
> echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:
> echo ${PATH}
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:
V textu se budeme držet způsobu se závorkami. Expanze ${} je pokročilejší
mechanismus, který umí i doplňování výchozích hodnot, ořezávání a nahrazování
podřetězců; věnuje se mu podkapitola
Expanze parametrů.
Vypíšeme-li obsah neexistující proměnné, dostaneme prázdný řetězec
> echo ${DONOTEXIST}
Proměnným přiřazujeme hodnotu pomocí operátoru =. Pozor, nesmí okolo něj být
mezery.
> FOO=uname
> echo ${FOO}
uname
Následující spustí utilitku uname
> ${FOO}
Linux
Chceme-li do proměnné přiřadit hodnotu s mezerami, musíme ji napsat do uvozovek
(") nebo apostrofů (').
> FOO='uname -a'
> echo ${FOO}
uname -a
> ${FOO}
Linux phoenix 4.9.0-19-686-pae #1 SMP Debian 4.9.320-2 (2022-06-30) i686 GNU/Linux
V systému obvykle existuje řada systémových proměnných, které lze považovat za
součást konfigurace systému a shellu. Například výše uvedená proměnná PATH
obsahuje dvojtečkami oddělený seznam adresářů, ve kterých se vyhledávají
spustitelné soubory do shellu zadaných programů. Seznam nastavených proměnných
lze zobrazit pomocí1
> set
BASH=/bin/bash
[...]
(Výrazem [...] značíme, že výpis pokračuje na další řádky.)
-
Alternativy:
env,printenvzobrazí pouze systémové proměnné. ↩