Schleifenanweisungen in Shell-Skripten: Es gibt insgesamt drei Schleifenanweisungen, die in der Bash-Programmierung verwendet werden können
Inhaltsverzeichnis
- „while“-Anweisung im Shell-Skript unter Linux
- „for“-Anweisung im Shell-Skript unter Linux
- „until“-Anweisung im Shell-Skript unter Linux
- Beispiele für Schleifenanweisungen
Um den Ablauf von Schleifenanweisungen zu ändern, werden zwei Befehle verwendet:
- brechen
- weitermachen
Ihre Beschreibungen und Syntax lauten wie folgt:
„while“-Anweisung im Shell-Skript unter Linux
Hier wird der Befehl ausgewertet und basierend auf der resultierenden Schleife ausgeführt. Wenn der Befehl auf „false“ gesetzt wird, wird die Schleife beendet Das.
#/bin/bash while do done>
Implementierung der „While“-Schleife im Shell-Skript.
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim looping.sh>
Sie können looping.sh durch den gewünschten Namen ersetzen.
Anschließend machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x looping.sh>
#/bin/bash
a=0
# Es ist kleiner als der Operator
#Durchlaufe die Schleife, bis weniger als 10 erreicht sind
while [ $a -lt 10 ]
Tun
# Drucken Sie die Werte aus
echo $a
# den Wert erhöhen
a=`expr $a + 1`
Erledigt
Ausgabe:

While-Schleife unter Linux
Erläuterung:
-
#/bin/bash>: Gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll. -
a=0>: Initialisiert eine Variablea>mit dem Wert 0. -
while [ $a -lt 10 ]>: Initiiert eine While-Schleife, die so lange andauert, wie der Werta>ist kleiner als 10. -
do>: Markiert den Anfang des Schleifenkörpers. -
echo $a>: Druckt den aktuellen Wert vona>die Konsole. -
a=>Ausdruck $a + 1 : Erhöht den Wert vona>um 1. Dieexpr>Der Befehl wird für arithmetische Ausdrücke verwendet. -
done>: Markiert das Ende der Schleife.
„for“-Anweisung im Shell-Skript unter Linux
Die for-Schleife arbeitet mit Listen von Elementen. Es wiederholt eine Reihe von Befehlen für jedes Element in einer Liste.
Dabei ist var der Name einer Variablen und Wort1 bis WortN sind durch Leerzeichen getrennte Zeichenfolgen (Wörter). Bei jeder Ausführung der for-Schleife wird der Wert der Variablen var auf das nächste Wort in der Wortliste gesetzt, Wort1 bis WortN.
Syntax:
#/bin/bash for in do done>
Implementierung der „for“-Schleife mit „break“-Anweisung im Shell-Skript.
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim for.sh>
Sie können for.sh durch den gewünschten Namen ersetzen.
Anschließend machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x for.sh>
#/bin/bash
#Beginn der for-Schleife
für a in 1 2 3 4 5 6 7 8 9 10
Tun# wenn a gleich 5 ist, unterbreche die Schleife
wenn [ $a == 5 ]
Dann
brechen
Sei# Den Wert drucken
echo Iteration nein $a
Erledigt
Ausgabe:

Break-Anweisung in der for-Schleife unter Linux
Erläuterung:
#/bin/bash>: Gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.for a in 1 2 3 4 5 6 7 8 9 10>: Initiiert eine for-Schleife, die die Werte 1 bis 10 durchläuft und jeden Wert der Variablen zuweista>in jeder Iteration.do>: Markiert den Anfang des Schleifenkörpers.if [ $a == 5 ]>: Überprüft, ob der aktuelle Werta>ist gleich 5.then>: Markiert den Anfang des bedingten Blocks, der ausgeführt werden soll, wenn die Bedingung wahr ist.break>: Verlässt die Schleife, wenn die Bedingung wahr ist.
fi>: Markiert das Ende des bedingten Blocks.
echo 'Iteration no $a'>: Druckt eine Meldung mit der aktuellen Iterationsnummer.done>: Markiert das Ende der Schleife.
Das Skript richtet eine for-Schleife ein, die die Werte 1 bis 10 durchläuft. Bei jeder Iteration prüft es, ob der Wert vorhanden ista>ist gleich 5. Ist dies der Fall, wird die Schleife mit dem verlassenbreak>Stellungnahme. Andernfalls wird eine Meldung mit der aktuellen Iterationsnummer ausgegeben. Die Schleife wird fortgesetzt, bis sie alle Iterationen abgeschlossen hat oder bis sie auf eine break-Anweisung stößt.
Implementierung der „for“-Schleife mit der „continue“-Anweisung im Shell-Skript.
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim for_continue.sh>
Sie können for_continue.sh durch den gewünschten Namen ersetzen.
Anschließend machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x for_continue.sh>
#/bin/bash
für a in 1 2 3 4 5 6 7 8 9 10
Tun# wenn a = 5, dann setze die Schleife fort und
# nicht zu Zeile 8 wechselnwenn [ $a == 5 ]
Dann
weitermachen
Sei
echo Iteration nein $a
ErledigtJava-Sammlungen
Ausgabe:

continue-Anweisung in der for-Schleife unter Linux
Erläuterung:
-
#/bin/bash>: Gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll. -
for a in 1 2 3 4 5 6 7 8 9 10>: Initiiert eine for-Schleife, die die Werte 1 bis 10 durchläuft und jeden Wert der Variablen zuweista>in jeder Iteration. -
do>: Markiert den Anfang des Schleifenkörpers. -
if [ $a == 5 ]>: Überprüft, ob der aktuelle Werta>ist gleich 5.-
then>: Markiert den Anfang des bedingten Blocks, der ausgeführt werden soll, wenn die Bedingung wahr ist.-
continue>: Überspringt den Rest des Schleifenkörpers und geht zur nächsten Iteration über, wenn die Bedingung wahr ist.
-
-
fi>: Markiert das Ende des bedingten Blocks.
-
-
echo 'Iteration no $a'>: Druckt eine Meldung mit der aktuellen Iterationsnummer. Diese Zeile wird übersprungen, wenna>ist aufgrund der gleich 5continue>Stellungnahme. -
done>: Markiert das Ende der Schleife.
Das Skript richtet eine for-Schleife ein, die die Werte 1 bis 10 durchläuft. Bei jeder Iteration prüft es, ob der Wert vorhanden ista>ist gleich 5. Wenn dies der Fall ist, fährt die Schleife mit der nächsten Iteration fort, ohne die verbleibenden Anweisungen im Schleifenkörper auszuführen. Andernfalls wird eine Meldung mit der aktuellen Iterationsnummer ausgegeben. Die Schleife wird fortgesetzt, bis alle Iterationen abgeschlossen sind.
„until“-Anweisung im Shell-Skript unter Linux
Die Until-Schleife wird so oft ausgeführt, wie die Bedingung/der Befehl „falsch“ ergibt. Die Schleife endet, wenn die Bedingung/der Befehl wahr wird.
Syntax:
#/bin/bash until do done>
Implementierung der „until“-Schleife in Shell Scrip
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim until.sh>
Sie können bis ersetzen. sh mit dem gewünschten Namen.
Anschließend machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x until.sh>
#/bin/bash
a=0
# -gt ist größer als der Operator
#Durchlaufe die Schleife, bis a größer als 10 istbis [ $a -gt 10 ]
Tun# Drucken Sie die Werte aus
echo $a# den Wert erhöhen
a=`expr $a + 1`
Erledigt
Ausgabe:

Bis-Schleife unter Linux
Erläuterung:
-
#/bin/bash>: Gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll. -
a=0>: Initialisiert eine Variablea>mit dem Wert 0. -
until [ $a -gt 10 ]>: Initiiert eine Bis-Schleife, die so lange fortgesetzt wird, wie der Wert angegeben ista>ist nicht größer als 10. -
do>: Markiert den Anfang des Schleifenkörpers. -
echo $a>: Druckt den aktuellen Wert vona>die Konsole. -
a=>Ausdruck $a + 1 : Erhöht den Wert vona>um 1. Dieexpr>Der Befehl wird für arithmetische Ausdrücke verwendet. -
done>: Markiert das Ende der Schleife.
Notiz: Bei der Shell-Skripterstellung wird die Groß-/Kleinschreibung beachtet, was bedeutet, dass beim Schreiben der Skripts die richtige Syntax eingehalten werden muss.
Beispiele für Schleifenanweisungen
1. Iterieren über Farben mithilfe einer For-Schleife
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim color.sh>
Sie können color.sh durch den gewünschten Namen ersetzen.
Dann machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x color.sh>
#/bin/bash
FARBEN=rot grün blau
# Die for-Schleife wird fortgesetzt, bis alle Werte aus den FARBEN gelesen werden
für COLOR in $COLORS
Tun
echo FARBE: $COLOR
Erledigt
Ausgabe:

Für bis unter Linux
Erläuterung:
- Initialisierung der Farben:
COLORS='red green blue'>: Initialisiert eine Variable mit dem NamenCOLORS>mit einer durch Leerzeichen getrennten Liste von Farbwerten (Rot, Grün und Blau).
- Für Schleifeniteration:
for COLOR in $COLORS>: Initiiert eine for-Schleife, die jeden Wert im durchläuftCOLORS>Variable.- Schleifenkörper:
echo 'COLOR: $COLOR'>: Druckt für jede Farbe eine Meldung mit dem aktuellen Farbwert.
- Schleifenkörper:
- Die Schleife wird fortgesetzt, bis alle darin vorhandenen Werte verarbeitet sind
COLORS>Variable.
Dieses Beispiel demonstriert eine einfache for-Schleife in Bash, die eine in der gespeicherte Liste von Farben durchläuftCOLORS>Variable. Die Schleife gibt für jede Farbe eine Meldung aus, die angibt, welche Farbe aktuell verarbeitet wird. Die Schleife wird wiederholt, bis alle Farbwerte erschöpft sind.
2. Erstellen einer Endlosschleife mit while true im Shell-Skript
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim infinite.sh>
Sie können „infinite.sh“ durch den gewünschten Namen ersetzen.
Dann machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
Builder-Entwurfsmuster
chmod +x infinite.sh>
#/bin/bash
zwar wahr
Tun# Befehl, der ausgeführt werden soll
# Sleep 1 zeigt an, dass es 1 Sekunde lang schläft
echo Hallo, ich bin Infinity Loop
Schlaf 1
Erledigt
Ausgabe:

Endlosschleife unter Linux
Erläuterung:
Endlosschleifenstruktur:
while true>: Initiiert eine While-Schleife, die als Bedingung auf unbestimmte Zeit fortgesetzt wirdtrue>ist immer wahr.- Schleifenkörper:
echo 'Hi, I am infinity loop'>: Gibt eine Meldung aus, die angibt, dass sich das Skript in einer Endlosschleife befindet.sleep 1>: Pausiert die Ausführung der Schleife für 1 Sekunde vor der nächsten Iteration.
- Schleifenkörper:
- Die Schleife wird auf unbestimmte Zeit fortgesetzt und führt die Befehle in ihrem Körper wiederholt aus.
Dieses Beispiel zeigt die Erstellung einer Endlosschleife mithilfe des while true-Konstrukts in Bash. Die Schleife gibt kontinuierlich eine Meldung aus, die ihren Status als Endlosschleife angibt, und enthält einen Befehl „sleep 1“, der eine Verzögerung von einer Sekunde zwischen den Iterationen verursacht. Endlosschleifen werden häufig für Prozesse verwendet, die kontinuierlich laufen müssen, bis sie manuell unterbrochen werden.
3. Interaktive Namensbestätigungsschleife
Zuerst erstellen wir eine Datei mit einem Texteditor unter Linux. In diesem Fall verwenden wir „vim“editor.
vim name.sh>
Sie können name.sh durch den gewünschten Namen ersetzen.
Dann machen wir unser Skript mit dem Befehl „chmod“ unter Linux ausführbar.
chmod +x name.sh>
#/bin/bash
RICHTIG=n
while [ $CORRECT == n ]
TunDie #-Schleife wird abgebrochen, wenn Sie y eingeben, d. h. wenn Ihr Name korrekt ist
# -p steht für Eingabeaufforderungread -p Geben Sie Ihren Namen ein: NAME
read -p Ist ${NAME} korrekt? RICHTIG
Erledigt
Ausgabe:

Interaktives Skript unter Linux
Erläuterung:
- Initialisierung:
CORRECT=n>: Initialisiert eine Variable mit dem NamenCORRECT>mit dem Wert n. Diese Variable wird zur Steuerung der Schleife verwendet.
- Interaktive Schleife:
while [ '$CORRECT' == 'n' ]>: Initiiert eine While-Schleife, die so lange andauert, wie der Wert vonCORRECT>ist gleich n.- Schleifenkörper:
read -p 'Enter your name:' NAME>: Fordert den Benutzer zur Eingabe seines Namens auf und speichert die Eingabe imNAME>Variable.read -p 'Is ${NAME} correct? ' CORRECT>: Fordert den Benutzer auf, zu bestätigen, ob der eingegebene Name korrekt ist, und aktualisiert denCORRECT>entsprechend variabel.
- Schleifenkörper:
- Die Schleife wird fortgesetzt, bis der Benutzer y eingibt (wodurch der korrekte Name angegeben wird).
Dieses Beispiel zeigt eine interaktive Schleife, die den Benutzer zur Eingabe seines Namens auffordert und dann um eine Bestätigung bittet. Die Schleife wird fortgesetzt, bis der Benutzer durch die Eingabe von y bestätigt, dass der eingegebene Name korrekt ist. Die Schleife verwendet das ` read> `>Befehl für Benutzereingaben und aktualisiert die ` CORRECT> `>Variable zur Steuerung des Schleifenflusses.
Abschluss
In diesem Artikel haben wir Schleifenanweisungen in der Bash-Skripterstellung besprochenwhile>,for>, Unduntil>Schleifen. Es führt in die Verwendung von einbreak>Undcontinue>Anweisungen zum Ändern des Schleifenverhaltens. Praktische Beispiele veranschaulichen die Implementierung von Schleifen, einschließlich der Iteration über Farbwerte, der Erstellung von Endlosschleifen und dem Aufbau einer interaktiven Schleife zur Validierung von Benutzereingaben. Der Leitfaden bietet eine prägnante und dennoch informative Ressource zum Verständnis und zur Verwendung von Schleifenkonstrukten in der Bash-Skripterstellung.