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 unduntil
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
zu0
. - 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 daswhile
Schleife mit dem Bashbreak
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 Zahlen1
bis10
. - 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.