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

Bash Continue:Wie man eine Schleife fortsetzt

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 while neu und until Schleifen.

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 for Schleifenbedingung, iteriert die Variable i von 1 bis 10 .
  • Zeile 5 überprüft das i Wert. Wenn die Variable gleich 9 ist , 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 i von 1 bis 5 .
  • Zeile 5 startet eine innere for-Schleife und erhöht die Variable j von 1 bis 5 für jedes i erhöhen.
  • Zeile 7 prüft, ob die Variablen i und j gleich 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 i und setzt den Wert auf 0 .
  • Zeile 5 initiiert ein while Schleife. Die Endbedingung ist wenn i ist kleiner als 11 .
  • Zeile 7 gibt eine Bedingungsprüfung mit einem if an Erklärung. Wenn die Variable i entspricht 9 , 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 , und continue -Anweisung setzt die Schleife bei Zeile 5 fort .
  • Zeile 13 und 14 gibt die Variable i aus 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 PS3 in Zeile 3 ist die Displaymeldung für select Schleife.
  • Zeile 5 definiert die Schleifenbedingung und listet Zahlen ab 1 auf bis 10 . Die Variable i speichert die Benutzereingaben.
  • Zeile 7 gibt die Auswahl wieder.
  • Zeile 8 führt eine Überprüfung durch. Wenn der Benutzereingabewert 9 ist , gibt das Programm eine Nachricht an die Konsole aus und fährt mit der select fort 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.


Linux
  1. So verwenden Sie die Bedingungsanweisung if else in Bash-Skript

  2. Wie debuggt man ein Bash-Skript?

  3. Wie stoppe ich das Loop Bash-Skript im Terminal?

  4. Wie erkennt man Bash>=4.0?

  5. Wie setzt man eine Gnome-Sitzung fort?

Bash-Case-Statement

Bash if..else-Anweisung

Bash brechen und fortfahren

Bash-Skripting – Case-Statement

So arbeiten Sie mit Case-Anweisungen in Bash-Skripten

So führen Sie ein Bash-Skript aus