GNU/Linux >> Znalost Linux >  >> Linux

Bash break:Jak vystoupit ze smyčky

Ú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 a until 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 na 0 .
  • Řá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í Bash break 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 čísla 1 do 10 .
  • Řá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í.


Linux
  1. Jak mohu získat jedinečné hodnoty z pole v Bash?

  2. Jak získat stav ukončení smyčky v bash

  3. Bash:Smyčka, dokud se stav ukončení příkazu nerovná 0

  1. Jak ukončit vim -y v konzoli?

  2. jak získat prvky ze seznamu v bash?

  3. Jak získat masku sítě z bash?

  1. Jak napsat smyčku v Bash

  2. Jak vymazat konkrétní příkaz z historie Bash v Linuxu

  3. Jak zastavit skript Loop Bash v terminálu?