Řídící struktury můžou váš program řídit a tím ho udělat mnohem více užitečný a efektivnější. Velmi důležitá je například detekce chyb. Příklad programu s řídící strukturou by mohl být tento:
#!/bin/bash
cp /etc/foo .
echo "Hotovo!"
Tento skript nazvěme například bar.sh. Jeho činnost spočívá v tom, že zkopíruje soubor /etc/foo do aktivního adresáře a nakonec vypíše "Hotovo!". Ale uvědomte si, že ne každý má ve svém adresáři soubor /etc/foo. V tom případě se žádný soubor nezkopíruje, program cp vypíše chybu a poté se v klidu vypíše "Hotovo!". Toto chování by se však nemělo objevovat. V pseudokódu by to tedy mělo vypadat takto:
jestli /etc/foo existuje pak
kopíruj /etc/foo do aktivního adresáře
napiš na obrazovku "Hotovo!"
jinak
napiš na obrazovku "Soubor neexistuje!"
konec
Mohlo by toto být realizováno v bash
? Samozřejmě! Jeho řídící strkutury jsou: if, while, until, for
a case
. Každá tato struktura je tzv. párová. To znamená, že začíná jako "návěst" a končí taky "návěst". Například struktura podmínky začíná if
a končí fi
. Řídící struktury nejsou programy, které by jste mohli nalézt v systému. Jsou to pouze interní funkce shellu bash
. Řídící struktury obecně tvoří základ tazvaného strukturovaného programování.
Řídící struktury, které bash podporuje: