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

Bash brechen und fortfahren

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.


Linux
  1. Bash For Loop Guide und Beispiele

  2. Eine Bash-For-Schleife parallelisieren?

  3. Bash-Zeilenfortsetzungen nach &&und || Dokumentiert?

  4. Beispiele für Bash-For- und While-Schleifen

  5. Bash - Datumsbefehl und Leerzeichen

Bash Break:So verlassen Sie eine Schleife

Bash-while-Schleife

Bash für Schleife

Bash bis Loop

Bash Exit-Befehl und Exit-Codes

Bash-Skripting – While- und Until-Schleife mit Beispielen erklärt