Mit Schleifen können Sie einen oder mehrere Befehle mehrmals ausführen, bis eine bestimmte Bedingung erfüllt ist. Manchmal müssen Sie jedoch den Ablauf der Schleife ändern und die Schleife oder nur die aktuelle Iteration beenden.
In Bash break
und continue
-Anweisungen können Sie die Schleifenausführung steuern.
Bash break
Anweisung #
Die break
-Anweisung beendet die aktuelle Schleife und übergibt die Programmsteuerung an den Befehl, der auf die beendete Schleife folgt. Es wird verwendet, um einen for
zu verlassen , while
, until
, oder select
loop.sDie Syntax des break
Die Anweisung hat folgende Form:
break [n]
[n]
ist ein optionales Argument und muss größer oder gleich 1 sein. Wenn [n]
bereitgestellt wird, wird die n-te Umschließungsschleife verlassen. break 1
entspricht break
.
Um besser zu verstehen, wie man break
verwendet Anweisung, werfen wir einen Blick auf die folgenden Beispiele.
Im folgenden Skript die Ausführung von while
Die Schleife wird unterbrochen, sobald das aktuell iterierte Element gleich 2
ist :
i=0
while [[ $i -lt 5 ]]
do
echo "Number: $i"
((i++))
if [[ $i -eq 2 ]]; then
break
fi
done
echo 'All Done!'
Number: 0
Number: 1
All Done!
Hier ist ein Beispiel für die Verwendung von break
-Anweisung innerhalb des verschachtelten for
Schleifen.
Wenn das Argument [n]
nicht angegeben ist, break
beendet die innerste umschließende Schleife. Die äußeren Schleifen werden nicht beendet:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
All Done!
Wenn Sie die äußere Schleife verlassen möchten, verwenden Sie break 2
. Argument 2
sagt break
um die zweite einschließende Schleife zu beenden:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break 2
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
All Done!
Bash continue
Anweisung #
Der continue
-Anweisung überspringt die verbleibenden Befehle innerhalb des Hauptteils der einschließenden Schleife für die aktuelle Iteration und übergibt die Programmsteuerung an die nächste Iteration der Schleife.
Die Syntax von continue
Anweisung lautet wie folgt:
continue [n]
Der [n]
Das Argument ist optional und kann größer oder gleich 1 sein. Wenn [n]
gegeben ist, wird die n-te Umschließungsschleife fortgesetzt. continue 1
entspricht continue
.
Im Beispiel unten ist das aktuelle iterierte Element gleich 2
, continue
-Anweisung bewirkt, dass die Ausführung zum Anfang der Schleife zurückkehrt und mit der nächsten Iteration fortfährt.
i=0
while [[ $i -lt 5 ]]; do
((i++))
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
Das folgende Skript gibt Zahlen aus 1
aus bis 50
die durch 9
teilbar sind .
Wenn eine Zahl nicht durch 9
teilbar ist , continue
-Anweisung überspringt das echo
Befehl und übergeben Sie die Steuerung an die nächste Iteration der Schleife.
for i in {1..50}; do
if [[ $(( $i % 9 )) -ne 0 ]]; then
continue
fi
echo "Divisible by 9: $i"
done
Divisible by 9: 9
Divisible by 9: 18
Divisible by 9: 27
Divisible by 9: 36
Divisible by 9: 45
Schlussfolgerung #
Schleifen sind eines der grundlegenden Konzepte von Programmiersprachen. In Skriptsprachen wie Bash sind Schleifen nützlich, um sich wiederholende Aufgaben zu automatisieren.
Die break
-Anweisung wird verwendet, um die aktuelle Schleife zu verlassen. Der continue
-Anweisung wird verwendet, um die aktuelle Iteration einer Schleife zu verlassen und die nächste Iteration zu beginnen.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.