Úvod
Ve skriptování Bash break příkaz pomáhá poskytovat kontrolu uvnitř příkazů smyčky. Namísto čekání na konec podmínky break pomáhá opustit smyčku dříve, než nastane podmínka ukončení.
Příkazy řídicí smyčky (break a pokračovat) logicky kombinovat s podmíněnými příkazy, jako je if elif else, abyste vytvořili speciální situace uvnitř smyček.
Tento výukový program vás naučí, jak používat break ve smyčkách skriptů Bash.
Předpoklady
- Počítač se systémem macOS nebo Linux.
- Základy skriptování v Bash (jako je psaní a spouštění skriptu).
- Textový editor pro psaní příkladů skriptů Bash, jako je nano.
Příkaz Bash break
break příkaz ukončí iteraci aktuální smyčky a opustí smyčku. Při kombinaci s podmínkou break pomáhá poskytnout metodu, jak opustit smyčku dříve, než dojde ke konečnému případu.
Bash break příkazy vždy platí pro smyčky.
Syntaxe je:
break <integer>
Hodnota celého čísla je volitelná a je 1 ve výchozím stavu. Číslo definuje hloubku break pro vnořené smyčky. Chcete-li tedy přerušit vnořenou smyčku for, použijte break 2 .
Příklady přerušení bash
Níže uvedené příklady ukazují, jak opustit různé typy smyček pomocí break prohlášení. Příklady zahrnují:
- Standardní
while, pro auntilsmyčky. selectpříkaz.
Každý příklad skriptu Bash níže je dodáván s vysvětlením.
Okamžitá smyčka
Použijte break příkaz pro ukončení while smyčka, když se naplní určitá podmínka. Následující skript používá break uvnitř while smyčka:
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '2' ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Každý řádek ve skriptu dělá následující:
- Řádek 3 definuje a nastavuje proměnnou
ina0. - Řádek 5 spustí
whilesmyčka. Koncová podmínka je, když je proměnná menší než jedenáct ($i -lt 11). - Řádek 7 provede kontrolu pomocí
ifprohlášení. Když se proměnná rovná dvěma ("$i" == 2), program ukončíwhilesmyčka pomocí Bashbreakvýpis na řádku 10 . V takovém případě kód přeskočí na řádek 16 . Pokud je proměnnou jiné číslo, skript pokračuje podle očekávání na řádku 12 .
Spusťte skript, abyste viděli výsledky.
Program uvádí čísla do 2 a ukončí skript.
Použití přerušení Inside pro smyčky
A for smyčka automaticky zvyšuje proměnnou. Chcete-li přidat podmíněný příkaz a ukončit for smyčka brzy, použijte break prohlášení. Následující kód ukazuje příklad použití break v rámci for smyčka:
#!/bin/bash
for i in {1..10}
do
if [[ $i == '2' ]]
then
echo "Number $i!"
break
fi
echo "$i"
done
echo "Done!"
Když se celočíselná hodnota rovná dvěma ($i == '2' ), program vytiskne zprávu a ukončí for smyčka díky break prohlášení.
Výsledkem je, že spuštění skriptu ukončí program, když se objeví proměnná i dosáhne dvě a skočí na poslední řádek kódu.
Přerušení ze smyčky do konce
A Bash until smyčka je jednou ze tří základních konstrukcí smyčky. Přidejte break příkaz k řízení toku programu a ukončení smyčky za jiných podmínek.
Níže je uveden příklad programu:
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 2 ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Ačkoli until smyčka obsahuje koncovou podmínku ($i -gt 10 ), tělo smyčky obsahuje další podmínku ($i -eq 2 ). Protože druhá podmínka nastane před první, program zadá if tělo příkazu, které obsahuje příkaz Bash break pro ukončení cyklu.
Spuštění skriptu ukazuje, že program končí, když se objeví proměnná i dosáhne hodnoty 2 .
Použití přerušení uvnitř vybrané smyčky
select příkaz vytváří nabídky a chová se jako nekonečná smyčka, i když to není jedna z primárních konstrukcí smyčky. Pro ukončení select elegantně vytvořte případ, pro který program končí, a použijte break opustit smyčku.
Níže uvedený kód ukazuje textovou hru na hádání čísel pomocí select prohlášení:
#!/bin/bash/
PS3="Guess my favorite number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 2 ]]
then
echo "Correct! $i is my favorite. Thanks for playing!"
break
fi
echo "Not my favorite. Try again!"
done
Kód dělá následující:
- Řádek 3 zobrazí instruktážní zprávu.
selectvýpis vytiskne tuto zprávu po vypsání všech možností a po každém nesprávném odhadu. - Řádek 5 spustí
selecta definuje možnosti jako čísla1do10. - Řádek 8 zkontroluje, zda se vybrané číslo rovná
2, což je správný odhad. Pokud kontrola projde, příkaz Bash break pomůže opustit smyčku a ukončí hru.
Spusťte skript a zahrajte si hru na hádání čísel.
Chcete-li zobrazit výsledky, zadejte různé hodnoty.
Chcete-li skript dále rozvinout, zkuste přidat elif příkaz pro kontrolu vstupů mimo rozsah nebo jej změňte na příkaz case pro zvážení různých vstupních situací.