Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.)


  1. Alternativy: env, printenv zobrazí pouze systémové proměnné. ↩