Ú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 auntil
smyčky. select
pří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
i
na0
. - Řádek 5 spustí
while
smyčka. Koncová podmínka je, když je proměnná menší než jedenáct ($i -lt 11
). - Řádek 7 provede kontrolu pomocí
if
prohlášení. Když se proměnná rovná dvěma ("$i" == 2
), program ukončíwhile
smyčka pomocí Bashbreak
vý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.
select
výpis vytiskne tuto zprávu po vypsání všech možností a po každém nesprávném odhadu. - Řádek 5 spustí
select
a definuje možnosti jako čísla1
do10
. - Řá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í.