BASH Scripting Lesson 5 using WHILE loops
Inhaltsverzeichnis:
- Bash while Loop
- Endlos während Loop
- Lesen Sie eine Datei Zeile für Zeile
- Anweisungen unterbrechen und fortsetzen
- Break-Anweisung
- Continue-Anweisung
- Fazit
Schleifen sind eines der grundlegenden Konzepte von Programmiersprachen. Schleifen sind praktisch, wenn Sie eine Reihe von Befehlen so oft ausführen möchten, bis eine bestimmte Bedingung erfüllt ist.
In Skriptsprachen wie Bash sind Schleifen hilfreich, um sich wiederholende Aufgaben zu automatisieren. In Bash-Skripten gibt es drei grundlegende Schleifenkonstrukte: for loop, while loop und until loop.
Dieses Tutorial erklärt die Grundlagen von while-Schleifen in Bash sowie die break and continue-Anweisungen, um den Ablauf einer Schleife zu ändern.
Bash while Loop
Die while-Schleife wird verwendet, um eine bestimmte Menge von Befehlen in unbekannter Anzahl auszuführen, solange die angegebene Bedingung als wahr ausgewertet wird.
Die Bash while-Schleife hat folgende Form:
while do done
Die Bedingung wird vor dem Ausführen der Befehle ausgewertet. Wenn die Bedingung als wahr ausgewertet wird, werden Befehle ausgeführt. Andernfalls wird die Schleife beendet und die Programmsteuerung an den folgenden Befehl übergeben, wenn die Bedingung als falsch ausgewertet wird.
Im folgenden Beispiel gibt die Schleife bei jeder Iteration den aktuellen Wert der Variablen
i
und erhöht die Variable um eins.
i=0 while do echo Number: $i ((i++)) done
Die Schleife wird wiederholt, solange
i
kleiner oder gleich zwei ist. Es wird die folgende Ausgabe erzeugen:
Endlos während Loop
Eine Endlosschleife ist eine Schleife, die sich auf unbestimmte Zeit wiederholt und niemals endet. Wenn die Bedingung immer true ergibt, erhalten Sie eine Endlosschleife.
Im folgenden Beispiel verwenden wir den eingebauten Befehl
:
der immer true zurückgibt, um eine Endlosschleife zu erstellen. Sie können auch den integrierten Befehl
true
oder eine andere Anweisung verwenden, die immer true zurückgibt.
Die obige while-Schleife wird auf unbestimmte Zeit ausgeführt. Sie können die Schleife beenden, indem Sie
Hier ist ein einzeiliges Äquivalent: Eine der häufigsten Anwendungen der while-Schleife ist das zeilenweise Lesen einer Datei, eines Datenstroms oder einer Variablen. Im folgenden Beispiel liest die while-Schleife die Datei
Anstatt die while-Schleife mit einer Bedingung zu steuern, verwenden wir die Eingabeumleitung (
Verwenden
Der Befehl
Mit den Anweisungen break und continue kann die Ausführung der while-Schleife gesteuert werden. Die break-Anweisung beendet die aktuelle Schleife und übergibt die Programmsteuerung an den Befehl, der auf die terminierte Schleife folgt. Es wird normalerweise verwendet, um die Schleife zu beenden, wenn eine bestimmte Bedingung erfüllt ist. Im folgenden Beispiel wird die Ausführung der Schleife unterbrochen, sobald das aktuell iterierte Element gleich
Die continue-Anweisung beendet die aktuelle Iteration einer Schleife und übergibt die Programmsteuerung an die nächste Iteration der Schleife. Im Folgenden bewirkt die continue-Anweisung, dass die Ausführung an den Anfang der Schleife zurückkehrt und mit der nächsten Iteration fortgesetzt wird, sobald das aktuelle iterierte Element gleich
Inzwischen sollten Sie ein gutes Verständnis für die Verwendung der Bash While-Schleife haben.
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
drücken.
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
Lesen Sie eine Datei Zeile für Zeile
/etc/passwd
zeilenweise und gibt jede Zeile aus.
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
), um eine Datei an den
read
Befehl zu übergeben, der die Schleife steuert. Die while-Schleife wird ausgeführt, bis die letzte Zeile gelesen wurde.
read
beim zeilenweisen Lesen von Dateien immer
read
mit der Option
-r
, um zu verhindern, dass ein Backslash als Escape-Zeichen verwendet wird.
read
schneidet standardmäßig die führenden / nachfolgenden Leerzeichen (Leerzeichen und Tabulatoren) ab. Verwenden Sie die Option
IFS=
vor dem Befehl
read
, um dieses Verhalten zu verhindern
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
Anweisungen unterbrechen und fortsetzen
Break-Anweisung
2
.
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
Continue-Anweisung
2
.
i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'
Number: 1 Number: 3 Number: 4 Number: 5 All Done!
Fazit
Microsoft Research Asia veranstaltet Gates zum 10-Jahres-Bash

Microsoft Research Asia ist von einem Dutzend Personen 1998 auf über 350 ein Jahrzehnt später gewachsen.
Ausführen von Bash unter Ubuntu unter Windows 10

Wenn Sie Windows Subsystem für Linux aktivieren, können Sie Bash unter Ubuntu in Bash-Skripten von Windows 10 ausführen , Linux-Kommandozeilen-Tools, Linux-First-Tools.
Bash-Arrays

Arrays sind eine der am häufigsten verwendeten und grundlegendsten Datenstrukturen. In diesem Artikel werden die Bash-Arrays behandelt und erläutert, wie Sie sie in Ihren Bash-Skripten verwenden.