Pôvodný unixový shell Bourne Shell prepracovali v GNU a nazvali Bourne Again Shell. Bash je štandardne využívaný shell v distribúciách Linuxu.
Skripty su spustiteľné súbory obsahujúce viac príkazov spustených v dávke jeden po druhom. Napríklad v prostrediach DOS, OS/2, Windows sa používa dávkový súbor s koncovkou bat (batch file).
Základnou funkciou shellu bash je programovací jazyk na spúštanie skriptov.
Bash základy
Príklad príkazového riadku v bash:
username@hostname current_directory shell_type
user@localhost:~$
username
je prihlasovacie meno uživateľahostname
je názov hostiteľského počítačacurrent_directory@
označuje adresár, kde sa nachádzame, pričom~
označuje domovský adresár užívateľa, v tomto prípade by to bol štandardne/home/spyros/
- Znak
$
pre kurzorom určuje každého užívateľa okrem roota, ktorý je označený vlastným znakom#
.
V príkazovom riadku sa vieme pohybovať šípkami doprava a doľava pre ľahšiu editáciu príkazu.
Šípkami hore a dole sa pohybujeme v histórii zadaných príkazov, ktoré sa logujú.
Prácu v príkazovom riadku si vieme urýchliť použitím tlačidla tab
, ktoré nám pri zadávaní súboru alebo adresáru doplní jeho názov alebo pri dvojitom stlačení zobrazí všetky možnosti.
V prostredí Linuxu nie je koncovka určujúca pre spustenie dávky, ale používa sa pre prehľadnosť koncovka .sh
. Pre spustenie musí byť súbor označený ako spustiteľný a užívateľ musí mať práva na jeho spustenie, napríklad chmod 755
.
PATH
PATH
je premenná prostredia prehľadávaných adresárov pre spustenie príkazu.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
Ak chceme spustiť náš vytvorený skript, musíme ho vložiť do prehľadávaných adresárov alebo vložiť adresár so skriptom do PATH
alebo zmeniť nastavenia súboru pre spustenie. Po zmene prístupových práv sa zmení v prostredí bash
aj farba skriptu vo výpise.
$ chmod +x nas_novy_skript_spusti_kazdy
Syntax pre spustenie
$ bash nas_novy_skript_spusti_kazdy
alebo
$ sh nas_novy_skript_spusti_kazdy
Premenné
Premenné (variables) sa používajú rovnakým spôsobom ako v programovacích jazykoch. Bash
ako prekladač vykonáva skript riadok po riadku.
Základný zápis a vykonanie. Pozor na formát úvodzoviek "
vs. '
. Bash nahradí hodnotu len pri dvojitých úvodzovkách:
variable="value"
echo "$value"
value
echo '$value'
$value
Premenná $?
vypíše exit code 0 (posledný príkaz sa vykonal úspešne), 1 (neúspešne) alebo 2 (neúspešne, zvyčajne pre zlý argument alebo parameter). Máme 255 kódov.
$ ls -la
$ echo $?
0
Premenná $@
rozširuje každý argument ako oddelený samostatný reťazec. Napríklad skript s príkazom script.sh arg1 arg2 arg3 bude obsahovať samostatné hodnoty „arg1“, „arg2“ a „arg3“.
Premenná $*
rozširuje všetky argumenty do jedného reťazca. Napríklad skript s príkazom script.sh arg1 arg2 arg3 bude obsahovať „arg1 arg2 arg3“.
Argumenty
Argument je premenná príkazu na vykonanie. Číselný argument napríklad $1
určí pozíciu v skripte. Argument $#
obsahuje počet argumentov v skripte.
Podmienky
Podmienky (conditional logic) sú známe slová z programovania. Napríklad ak if
sa niečo stane potom then
, ak je to pravda, nech sa vykoná akcia alebo sa urobí ešte else
niečo iné a ak je to nepravda fi
(forget it), tak nech sa vypíše chybová hláška.
Podmienka pre overenie sa nachádza v hranatých zátvorkách []
a môže nadobúdať hodnoty:
-eq
(číslené porovnanie, =, equal to),-ne
(nerovná sa, not equal),-gt
(väčšie ako, >, greater then),-ge
(väčšie ako alebo rovná sa, =>, greather the or eqal to),-lt
(menšie ako, <, less than) a-le
(menšie ako alebo rovná sa, <=, less then or eqaul to).