Smyčky umožňují spustit jeden nebo více příkazů vícekrát, dokud není splněna určitá podmínka. Někdy však může být nutné změnit tok smyčky a ukončit smyčku nebo pouze aktuální iteraci.
V Bash break
a continue
příkazy vám umožňují řídit provádění smyčky.
Bash break
Prohlášení #
break
příkaz ukončí aktuální smyčku a předá řízení programu příkazu, který následuje po ukončené smyčce. Používá se k ukončení for
, while
, until
nebo select
loop.sSyntaxe break
výpis má následující tvar:
break [n]
[n]
je volitelný argument a musí být větší nebo roven 1. Když [n]
Pokud je poskytnuta, n-tá uzavírací smyčka je opuštěna. break 1
je ekvivalentní break
.
Chcete-li lépe pochopit, jak používat break
prohlášení, podívejme se na následující příklady.
Ve skriptu níže je provedení while
smyčka bude přerušena, jakmile bude aktuální iterovaná položka rovna 2
:
i=0
while [[ $i -lt 5 ]]
do
echo "Number: $i"
((i++))
if [[ $i -eq 2 ]]; then
break
fi
done
echo 'All Done!'
Number: 0
Number: 1
All Done!
Zde je příklad použití break
příkaz uvnitř vnořený for
smyčky.
Když argument [n]
není zadáno, break
ukončuje nejvnitřnější uzavírací smyčku. Vnější smyčky nejsou ukončeny:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
All Done!
Pokud chcete opustit vnější smyčku, použijte break 2
. Argument 2
říká break
pro ukončení druhé smyčky:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break 2
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
All Done!
Bash continue
Prohlášení #
continue
příkaz přeskočí zbývající příkazy uvnitř těla uzavřené smyčky pro aktuální iteraci a předá řízení programu další iteraci smyčky.
Syntaxe continue
prohlášení je následující:
continue [n]
[n]
argument je volitelný a může být větší nebo roven 1. When [n]
je dán, je obnovena n-tá smyčka. continue 1
je ekvivalentní continue
.
V níže uvedeném příkladu, jakmile je aktuální iterovaná položka rovna 2
, continue
příkaz způsobí, že se provedení vrátí na začátek cyklu a bude pokračovat další iterací.
i=0
while [[ $i -lt 5 ]]; do
((i++))
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
Následující skript vytiskne čísla od 1
až 50
které jsou dělitelné 9
.
Pokud číslo není dělitelné 9
, continue
příkaz přeskočí echo
příkaz a předejte řízení další iteraci cyklu.
for i in {1..50}; do
if [[ $(( $i % 9 )) -ne 0 ]]; then
continue
fi
echo "Divisible by 9: $i"
done
Divisible by 9: 9
Divisible by 9: 18
Divisible by 9: 27
Divisible by 9: 36
Divisible by 9: 45
Závěr č.
Smyčky jsou jedním ze základních pojmů programovacích jazyků. Ve skriptovacích jazycích, jako je Bash, jsou smyčky užitečné pro automatizaci opakujících se úloh.
break
příkaz se používá k ukončení aktuální smyčky. continue
příkaz se používá k ukončení aktuální iterace smyčky a zahájení další iterace.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.