Sie können eine Folge von Befehlen ausführen, indem Sie sie in eine Skriptdatei schreiben und dann ausführen.
Eine Skriptdatei ist einfach eine Textdatei, normalerweise mit der Erweiterung .SH, die eine Folge von Anweisungen enthält, die auch über die Befehlszeile (Shell) ausgeführt werden kann.
Während Loop-Beispiele
Unten sehen Sie ein Beispiel für eine while-Schleife. Bei der Ausführung druckt diese Skriptdatei die Zahlen 1 bis 9 auf dem Bildschirm. Die while-Anweisung gibt Ihnen mehr Flexibilität bei der Angabe der Beendigungsbedingung als die for-Schleife.
Beispielsweise können Sie das vorherige Skript zu einer Endlosschleife machen, indem Sie die Inkrementierungsanweisung "((count ++))" weglassen.
Die Anweisung "sleep 1" hält die Ausführung bei jeder Wiederholung für 1 Sekunde an. Verwenden Sie die Tastenkombination Strg + C, um den Vorgang zu beenden.
Sie können auch eine Endlosschleife erstellen, indem Sie einen Doppelpunkt als Bedingung angeben:
Um mehrere Bedingungen in der while-Schleife zu verwenden, müssen Sie die doppelte eckige Klammer verwenden:
In diesem Skript wird die Variable "done" auf 0 initialisiert und dann auf 1 gesetzt, wenn der Zählerstand 5 erreicht. Die Schleifenbedingung besagt, dass die while-Schleife fortgesetzt wird, solange "count" weniger als neun ist und "done" gleich ist bis Null. Daher werden die Schleifen beendet, wenn die Zählung 5 entspricht.
"&&" bedeutet logisch "und" und "||" bedeutet logisch "oder".
Eine alternative Schreibweise für die Konjunktionen "und" und "oder" in Bedingungen ist "-a" und "-o" mit einfachen eckigen Klammern. Die obige Bedingung:
… könnte umgeschrieben werden als:
Das Lesen einer Textdatei erfolgt normalerweise mit einer while-Schleife. Im folgenden Beispiel liest das Bash-Skript den Inhalt Zeile für Zeile einer Datei namens "inventory.txt:".
Die erste Zeile weist den Namen der Eingabedatei der Variablen "FILE" zu. Die zweite Zeile speichert die "Standardeingabe" im Dateideskriptor "6" (es kann ein beliebiger Wert zwischen 3 und 9 sein). Dies geschieht, damit die "Standardeingabe" am Ende des Skripts im Dateideskriptor "0" wiederhergestellt werden kann (siehe Anweisung "exec 0"). In der 3. Zeile wird die Eingabedatei dem verwendeten Dateideskriptor "0" zugewiesen Für die Standardeingabe liest die Anweisung "read" bei jeder Iteration eine Zeile aus der Datei und weist sie der Variablen "line1" zu.
Um eine while-Schleife vorzeitig zu beenden, können Sie die break-Anweisung wie folgt verwenden:
Die break-Anweisung überspringt die Programmausführung bis zum Ende der Schleife und führt alle darauf folgenden Anweisungen aus. In diesem Fall wird die Anweisung "Echo beendet" angezeigt.
Die continue-Anweisung hingegen überspringt nur den Rest der while-Schleife der aktuellen Iteration und springt direkt zur nächsten Iteration:
In diesem Fall wird die Anweisung "continue" ausgeführt, wenn die Variable "count" 5 erreicht. Dies bedeutet, dass die folgende Anweisung (Echo "$ count") bei dieser Iteration nicht ausgeführt wird (wenn der Wert von "count" 5 ist).