Co jsou proměnné?
Proměnná je dočasná úložná oblast v paměti, která je buď nastavena uživatelem, shellem, systémem nebo jakýmkoli programem, který načítá jiný program. Existují dvě kategorie proměnných:
- Proměnné prostředí jsou platné po dobu trvání relace.
- Proměnné prostředí platí pouze pro aktuální instanci shellu a používají se k nastavení krátkodobých pracovních podmínek.
Zobrazení proměnných prostředí
Příkaz echo zobrazí hodnotu uloženou uvnitř proměnné shellu.
$ echo $SHELL /bin/bash
$ set DISPLAY=:0.0 EDITOR=/usr/bin/vi SHELL=/bin/bash TERM=xterm-256color USER=geek ...
Nastavení a zrušení nastavení proměnných prostředí
Proměnné shellu se nastavují pomocí příkazu set. Například:
$ set history = 50 $ echo $history 30
Příkaz set se také používá k zobrazení proměnných shellu a jejich hodnot. Například:
$ set | grep history 30
Hodnoty lze obrátit pomocí příkazu unset.
Výchozí proměnné prostředí Bash
Tabulka popisuje proměnné, kterým bash shell při přihlášení přiřadí výchozí hodnoty.
Proměnná | Význam |
---|---|
EDITOR | Definuje výchozí editor pro shell |
FCEDIT | Definuje editor pro příkaz fc. Používá se s mechanismem historie pro úpravu dříve provedených příkazů. |
DOMŮ | Nastaví adresář, do kterého se příkaz cd změní, když na příkazovém řádku není zadán žádný argument |
LOGNAME | Nastaví přihlašovací jméno uživatele |
PATH | Určuje dvojtečkou oddělený seznam adresářů, které se mají prohledávat, když shell potřebuje najít příkaz, který má být proveden |
PS1 | Určuje primární výzvu shellu Bash:$ |
PS2 | Určuje sekundární příkazový řádek, normálně:> |
SHELL | Určuje název shellu (tj. /bin/bash) |
Přizpůsobení proměnných prostředí:PS1
Řetězec příkazového řádku je uložen v proměnné shellu PS1 a můžete si jej přizpůsobit podle svých preferencí.
$ PS1=”$LOGNAME@`uname -n` \$PWD $ “ user@server01: $
– V tomto příkladu výzva zobrazuje přihlašovací jméno uživatele, název hostitele systému a aktuální pracovní adresář.
– Uživatelské jméno je načteno z proměnné LOGNAME a název hostitele pochází z výstupu „uname -n ‘ command.
– Tento příkazový řádek zobrazuje správné informace, i když se uživatel přihlásí na různých hostitelích.
– Značka zadní uvozovky (`) ohraničuje vložený řetězec příkazu.
Přizpůsobení proměnných prostředí:PATH
Proměnná PATH obsahuje seznam názvů adresářových cest oddělených dvojtečkami. Při provádění příkazu na příkazovém řádku hledá shell tyto adresáře zleva doprava v pořadí, aby našel daný příkaz. Pokud shell nenajde příkaz v seznamu adresářů, zobrazí chybovou zprávu „nenalezeno“. Chcete-li zajistit, aby příkazy fungovaly hladce, měli byste zahrnout příslušný adresář do proměnné PATH. Příklad ilustruje zahrnutí domovského adresáře do proměnné PATH.
Chcete-li například zahrnout domovský adresář do proměnné PATH, proveďte následující příkazy.
$ echo $PATH /usr/bin:/usr/sbin
$ PATH=$PATH:~
$ echo $PATH /usr/bin:/usr/sbin:/home/user01Poznámka :Proměnná PATH automaticky předá hodnotu do subshellů.