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ář.