GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash Break:So verlassen Sie eine Schleife

Einführung

In Bash-Skripten ein break -Anweisung hilft bei der Kontrolle innerhalb von Schleifenanweisungen. Anstatt bis zur Endbedingung zu warten, ein break -Anweisung hilft, eine Schleife zu verlassen, bevor die Endbedingung eintritt.

Die Kontrollschleifenanweisungen (break und Continue) lassen sich logisch mit bedingten Anweisungen wie if elif else kombinieren, um spezielle Situationen innerhalb von Schleifen zu erzeugen.

In diesem Tutorial lernen Sie, wie Sie break verwenden Anweisung effizient in Bash-Skriptschleifen.

Voraussetzungen

  • Eine Maschine, auf der macOS oder Linux ausgeführt wird.
  • Grundlagen der Bash-Skripterstellung (z. B. Schreiben und Ausführen eines Skripts).
  • Ein Texteditor zum Schreiben der Bash-Skriptbeispiele, z. B. nano.

Bash-Break-Anweisung

Die break -Anweisung beendet die aktuelle Schleifeniteration und verlässt die Schleife. In Kombination mit einer Bedingung break hilft, eine Methode bereitzustellen, um die Schleife zu verlassen, bevor der Endfall eintritt.

Die Bash-break Anweisungen gelten immer für Schleifen.

Die Syntax lautet:

break <integer>

Der ganzzahlige Wert ist optional und lautet 1 standardmäßig. Die Zahl definiert die Tiefe des break für verschachtelte Schleifen. Um eine verschachtelte for-Schleife zu unterbrechen, verwenden Sie daher break 2 .

Bash-Break-Beispiele

Die folgenden Beispiele zeigen, wie Sie mit break aus verschiedenen Schleifentypen aussteigen Erklärung. Zu den Beispielen gehören:

  • Das standardmäßige while , für und until Schleifen.
  • Die select Befehl.

Jedes Bash-Skriptbeispiel unten enthält eine Erklärung.

Breaking from a while-Schleife

Verwenden Sie den break -Anweisung zum Beenden eines while Schleife, wenn eine bestimmte Bedingung realisiert wird. Das folgende Skript verwendet einen break innerhalb eines while Schleife:

#!/bin/bash

i=0

while [[ $i -lt 11 ]] 
do
        if [[ "$i" == '2' ]]
        then
                echo "Number $i!"
                break
        fi
        echo $i
        ((i++))
done

echo "Done!"

Jede Zeile im Skript bewirkt Folgendes:

  • Zeile 3 definiert und setzt die Variable i zu 0 .
  • Zeile 5 startet das while Schleife. Die Endbedingung ist, wenn die Variable kleiner als elf ist ($i -lt 11 ).
  • Zeile 7 führt eine Prüfung mit einem if durch Erklärung. Wenn die Variable gleich zwei ist ("$i" == 2 ), beendet das Programm das while Schleife mit dem Bash break Anweisung in Zeile 10 . In diesem Fall springt der Code zu Zeile 16 . Wenn die Variable eine andere Zahl ist, fährt das Skript wie erwartet in Zeile 12 fort .

Führen Sie das Skript aus, um die Ergebnisse anzuzeigen.

Das Programm listet Zahlen bis 2 auf und beendet das Skript.

Break Inside für Schleifen verwenden

Ein for Schleife inkrementiert eine Variable automatisch. Zum Hinzufügen einer bedingten Anweisung und Beenden eines for Schleife früh, verwenden Sie einen break Erklärung. Der folgende Code zeigt ein Beispiel für die Verwendung eines break innerhalb eines for Schleife:

#!/bin/bash

for i in {1..10}
do
        if [[ $i == '2' ]]
        then
                echo "Number $i!"
                break
        fi
        echo "$i"
done

echo "Done!"

Wenn der ganzzahlige Wert gleich zwei ist ($i == '2' ), gibt das Programm eine Nachricht aus und beendet for Schleife dank break Aussage.

Als Ergebnis beendet die Ausführung des Skripts das Programm, wenn die Variable i erreicht zwei und springt zur letzten Codezeile.

Breaking from a until-Schleife

Ein Bash until Schleife ist eines der drei grundlegenden Schleifenkonstrukte. Fügen Sie einen break hinzu -Anweisung, um den Programmablauf zu steuern und die Schleife unter einer anderen Bedingung zu verlassen.

Unten ist ein Beispielprogramm:

#!/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!"

Obwohl die until Schleife enthält eine Endbedingung ($i -gt 10 ), enthält der Schleifenkörper eine weitere Bedingung ($i -eq 2 ). Da die zweite Bedingung vor der ersten eintritt, fügt das Programm den if ein Hauptteil der Anweisung, der eine Bash-Break-Anweisung enthält, um die Schleife zu verlassen.

Das Ausführen des Skripts zeigt, dass das Programm endet, wenn die Variable i erreicht den Wert 2 .

Break innerhalb einer ausgewählten Schleife verwenden

Die select Der Befehl erstellt Menüs und verhält sich wie eine Endlosschleife, obwohl er nicht zu den primären Schleifenkonstrukten gehört. Zum Verlassen select Anweisung elegant, machen Sie einen Fall, für den das Programm endet, und verwenden Sie break um die Schleife zu verlassen.

Der folgende Code demonstriert ein Textratenspiel mit Zahlen unter Verwendung eines select Aussage:

#!/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

Der Code macht Folgendes:

  • Zeile 3 zeigt die Anweisungsmeldung an. Die select -Anweisung gibt diese Nachricht nach dem Auflisten aller Optionen und nach jeder falschen Vermutung aus.
  • Zeile 5 startet die select -Anweisung und definiert die Optionen als Zahlen 1 bis 10 .
  • Zeile 8 prüft, ob die ausgewählte Zahl gleich 2 ist , was die richtige Vermutung ist. Wenn die Prüfung bestanden wird, hilft die Bash-Anweisung break beim Verlassen der Schleife und beendet das Spiel.

Führen Sie das Skript aus, um das Zahlenratespiel zu spielen.

Geben Sie verschiedene Werte ein, um die Ergebnisse anzuzeigen.

Um das Skript weiterzuentwickeln, versuchen Sie, ein elif hinzuzufügen -Anweisung, um auf Eingaben außerhalb des Bereichs zu prüfen, oder sie in eine case-Anweisung umzuwandeln, um verschiedene Eingabesituationen zu berücksichtigen.


Linux
  1. So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux

  2. Wie man MySQL-Abfragen von Bash füttert

  3. Bash:Schleife, bis der Befehlsausgangsstatus gleich 0 ist

  4. Wie beendet man vim -y in der Konsole?

  5. Wie bekomme ich Elemente aus der Liste in Bash?

Wie schreibe ich eine Schleife in Bash?

So kommentieren Sie in Bash

Bash Continue:Wie man eine Schleife fortsetzt

Bash-while-Schleife

Bash bis Loop

Bash brechen und fortfahren