Einführung
Die continue statement ist ein Bash-Builtin, das den Ablauf von Skriptschleifen verändert. Das Konzept ist nicht einzigartig für Bash und erscheint in anderen Programmiersprachen.
Der beste Weg, um zu verstehen, wie die Bash continue Aussage funktioniert anhand von praktischen Beispielen.
Dieses Tutorial zeigt, wie man die Bash continue verwendet -Anweisung in Bash-Skripten.
Voraussetzungen
- Eine Maschine, auf der Linux oder macOS ausgeführt wird.
- Ein Texteditor für die Beispiele.
- Grundkenntnisse der Bash-Skripterstellung.
Die Bash-Anweisung Continue
Die Bash continue -Anweisung setzt die folgende Iteration in einer Schleife oder Schleifenanweisung fort.
Die Syntax lautet:
continue <integer>
Die continue -Anweisung hat nur eine Bedeutung, wenn sie auf Schleifen angewendet wird. Der ganzzahlige Wert gibt die Tiefe für das continue an Erklärung. Standardmäßig ist die Ganzzahl 1 und das Schreiben der Nummer ist nicht obligatorisch. Erhöhen Sie die Zahl, um eine äußere Schleifenanweisung fortzusetzen.
Verwenden Sie ein continue -Anweisung als Schleifensteuerungsanweisung. Beispiel:continue -Anweisung hilft, die aktuelle Iteration innerhalb einer Schleife zu beenden, wenn eine bestimmte Bedingung erfüllt ist. Je nach Schleifentyp wird das Programm bei der nächsten Iteration fortgesetzt oder die Schleife neu gestartet.
Bash Continue-Beispiele
Nachfolgend finden Sie Beispiele und Erläuterungen zur Arbeit mit der Continue-Anweisung in Bash-Skripten.
Die folgenden primären Schleifenkonstrukte zeigen, wie die Anweisung funktioniert:
- Die for-Schleife wird bei der nächsten Iteration fortgesetzt, wenn sie mit Continue kombiniert wird.
- Die Continue-Anweisung startet das
whileneu unduntilSchleifen.
Die select Der Befehl erscheint auch in den Beispielen, obwohl es sich nicht um ein primäres Schleifenkonstrukt handelt. Die Anweisung funktioniert als Schleife, und die continue Anweisung funktioniert für jeden Schleifenbefehl.
Mit Bash mit einer for-Schleife fortfahren
Verwenden Sie continue -Anweisung in einem bedingten if, um den Fluss eines for zu steuern :
#!/bin/bash
for i in {1..10}
do
if [[ $i == '9' ]]
then
echo "Number $i!"
continue
fi
echo "$i"
done
echo "Done!"
Der Code macht Folgendes:
- Zeile 3 startet den
forSchleifenbedingung, iteriert die Variableivon1bis10. - Zeile 5 überprüft das
iWert. Wenn die Variable gleich9ist , gibt das Programm eine Nachricht zurück und startet die Schleife bei der nächsten Iteration neu (Zeile 3 ). - Zeile 10 gibt die Zahl nur dann auf der Konsole aus, wenn die bedingte Anweisung in Zeile 5 ist Falsch .
Führen Sie das Skript aus, um die Ergebnisse anzuzeigen.
Die Ausgabe gibt alle einzelnen Zahlen an die Konsole aus. Wenn die Bedingung in Zeile 5 zu True ausgewertet wird ($i == '9' ), gibt die Konsole eine Nachricht zurück.
Mit Bash mit verschachtelter Schleife fortfahren
Die continue -Anweisung arbeitet mit verschachtelten Schleifen auch. Verwenden Sie beispielsweise continue 2 um eine äußere Schleife fortzusetzen:
#!/bin/bash
for i in {1..5}
do
for j in {1..5}
do
if [[ $i -eq $j ]]
then
echo "$i = $j"
continue 2
fi
echo "$i =/= $j"
done
done
echo "Done!"
Das Programm macht folgendes:
- Zeile 3 startet die äußere Schleife und erhöht die Variable
ivon1bis5. - Zeile 5 startet eine innere for-Schleife und erhöht die Variable
jvon1bis5für jedesierhöhen. - Zeile 7 prüft, ob die Variablen
iundjgleich sind ($i -eq $j). Wenn dies der Fall ist,continue 2-Anweisung setzt die äußere Schleife bei der nächsten Iteration fort. Wenn die Werte jedoch unterschiedlich sind, wird das Programm wie erwartet fortgesetzt.
Führen Sie das Skript aus, um die Programmausgabe anzuzeigen.
Jedes Mal, wenn die beiden Werte gleich sind, erhöht sich die erste Zahl.
Mit Bash mit einer While-Schleife fortfahren
Unten sehen Sie ein Bash-Beispielskript, das den <strong>continue</strong> verwendet -Anweisung in einem while Schleife:
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '9' ]]
then
echo "Number $i!"
((i++))
continue
fi
echo $i
((i++))
done
Jede Zeile macht Folgendes:
- Zeile 3 definiert eine Variable
iund setzt den Wert auf0. - Zeile 5 initiiert ein
whileSchleife. Die Endbedingung ist wenniist kleiner als11. - Zeile 7 gibt eine Bedingungsprüfung mit einem
ifan Erklärung. Wenn die Variableientspricht9, fährt das Programm mit den Zeilen 9-11 fort . In allen anderen Fällen springt der Code zu Zeile 13 . - Zeilen 9-11 Geben Sie eine Nachricht an die Konsole aus, erhöhen Sie
i, undcontinue-Anweisung setzt die Schleife bei Zeile 5 fort . - Zeile 13 und 14 gibt die Variable
iaus zur Konsole und erhöhen Sie sie.
Führen Sie das Skript vom Terminal aus, um die Ausgabe anzuzeigen.
Das Programm gibt alle Zahlen auf der Konsole aus. Aufgrund der Bedingungs- und Continue-Anweisungen wird für die Nummer 9 eine andere Meldung ausgegeben .
Mit Bash mit einer until-Schleife fortfahren
Kombinieren Sie continue Anweisung mit einem until Schleife und stellen eine Bedingung bereit, um das Schleifenverhalten für einen bestimmten Wert zu ändern. Versuchen Sie beispielsweise das folgende Skript:
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 9 ]]
then
echo "Number $i!"
((i++))
continue
fi
echo $i
((i++))
done
Der Code erhöht eine Variable und macht eine Schleife, bis der Wert 10 erreicht . Wenn die Variable gleich 9 ist , gibt das Programm eine andere Meldung aus. Die continue -Anweisung startet until neu Schleife und fährt wie gewohnt fort.
Mit Bash mit einer ausgewählten Schleife fortfahren
Die select command ist ein Sonderfall, da es sich nicht um eine primäre Bash-Skriptschleife handelt. Der Befehl erstellt Menüs, die eine Benutzereingabe erfordern. Verwenden Sie continue -Anweisung, um basierend auf dem vom Benutzer ausgewählten Wert eine andere Ausgabe bereitzustellen.
Versuchen Sie als Beispiel das folgende Bash-Skript:
#!/bin/bash
PS3="Choose a number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 9 ]]
then
echo "Number $i!"
continue
fi
done
Das Skript besteht aus den folgenden Elementen:
- Die
PS3in Zeile 3 ist die Displaymeldung fürselectSchleife. - Zeile 5 definiert die Schleifenbedingung und listet Zahlen ab
1auf bis10. Die Variableispeichert die Benutzereingaben. - Zeile 7 gibt die Auswahl wieder.
- Zeile 8 führt eine Überprüfung durch. Wenn der Benutzereingabewert
9ist , gibt das Programm eine Nachricht an die Konsole aus und fährt mit derselectfort Schleife bei der nächsten Iteration.
Führen Sie das Skript aus und testen Sie es auf verschiedene Werte, um die Ausgabe anzuzeigen.
Um das Programm zu beenden, drücken Sie STRG +C oder fügen Sie eine Break-Anweisung hinzu.