Smyčky jsou kritickými strukturami v jakémkoli programovacím jazyce a hrají roli při provádění opakujících se úloh, jejichž provádění by bylo jinak v běžném kódu těžkopádné a časově náročné. Ve skriptování bash slouží smyčky stejnému účelu a v této příručce se blíže podíváme na různé typy smyček a na to, jak se používají.
Pro smyčky
Cyklus For se používá pro iteraci přes seznam objektů nebo položek. Seznam může obsahovat čísla, řetězce, znaky nebo dokonce pole.
Smyčka for má následující strukturu.
for item in list_of_items do command1 command2 done
Vezměme si několik příkladů:
Procházení seznamu řetězců
V níže uvedeném příkladu iterujeme seznam řetězců – v tomto případě planet – který obsahuje čtyři položky. Po iteraci vytiskneme každou položku na ztracené pomocí echa příkaz.
for planet in Mercury Venus Earth Mars Jupiter do echo $planet done
Poté přidělte oprávnění ke spuštění a spusťte for_loop.sh bash skript. Výstup zobrazí všechny položky obsažené v seznamu.
$ ./for_loop.sh
Opakování přes rozsah čísel
Pomocí cyklů for můžete také určit sekvenci v rozsahu čísel definováním počátečního a koncového bodu pomocí poskytnutého výrazu sekvence.
{START..END}
Níže uvedený příklad ukazuje cyklus for, který zobrazuje čísla od 1 do 10
for n in {0..10} do echo value: $n done
Spuštěním smyčky získáte zobrazený výstup.
Navíc můžete určit počet postupných přírůstků mezi hodnotami pomocí následujícího výrazu sekvence.
{START..END..STEPWISE_INCREMENT}
Například smyčka níže zobrazuje čísla od 1 do 10 s krokem zvýšení o 2 mezi hodnotami.
for n in {0..10..2} do echo value: $n done
Po provedení poskytuje smyčka následující výstup.
Opakování přes pole prvků
Také můžete využít smyčky k iteraci přes řadu položek. Například zde máme pole nazvané „FILMY“ s různými prvky, kterými jsou názvy filmů.
#!/bin/bash MOVIES=('Happy Feet' 'Who killed Sara' 'Lupin' 'Money Heist' 'House of cards') for movie in "${MOVIES[@]}"; do echo Movie: $movie done
Když je skript spuštěn, cyklus for iteruje přes celé pole a vytiskne názvy filmů, jak je znázorněno.
Shrnutí
Jak jste si všimli, smyčky for jsou poměrně jednoduché a praktické. Vytvářejí čistší kód tím, že eliminují opakující se kód, který je pro uživatele časově náročný. Opakující se úkoly lze snadno provést v několika jednoduchých řádcích.