Inhaltsverzeichnis:

Video: So Verwenden Sie BASH For Loop

Einer der grundlegendsten Tricks beim Erstellen von Bash-Skripten besteht darin, eine Schleife zu erstellen, damit bestimmte Aufgaben mehrmals automatisch ausgeführt werden können. Schließlich erreicht die Schleife eine vorbestimmte Testbedingung und hört plötzlich auf, ausgeführt zu werden. Schleifen wie diese funktionieren perfekt in Bash unter Linux und MacOS sowie in der Bash-Shell in Windows 10 und sogar in den verschiedenen Shells in FreeBSD. Natürlich können Sie jeden gewünschten Befehl in eine beliebige Schleife schreiben und jeden Prozess beliebig lange ausführen. Während wir einige extrem einfache Schleifen schreiben, können Sie diese Fähigkeiten verwenden, um beliebige Arten von Skripten zu erstellen.
Es gibt viele Möglichkeiten, mit dem Schreiben eines Skripts zu beginnen. Für diese Diskussion wird jedoch davon ausgegangen, dass Sie die Eingabeaufforderung geöffnet haben, indem Sie entweder im Dash nach einem Terminal suchen, in den Menüs KDE, MATE, LX oder Whisker darauf klicken oder gedrückt halten gleichzeitig Strg, Alt und T drücken. Während wir vi / vim und nano als Redakteure diskutieren, ist die Frage, welchen Editor Sie verwenden sollen, sehr persönlich und Sie können mit allem arbeiten, mit dem Sie sich wohl fühlen.
Methode 1: Die Bis-Schleife
Die vielleicht grundlegendste Schleife in bash ist die till-Schleife. Befehle werden so lange ausgeführt, bis die von Ihnen festgelegte Testbedingung erfüllt ist. Wir gehen davon aus, dass Sie entweder nano oder vi verwendet haben, um eine nicht vorhandene Datei mit dem Namen till.sh zu öffnen, und bereit sind, neuen Text darin einzufügen. Wir machen nur etwas, das bis 20 in Ihrem Terminal zählt, um dies zunächst einfach zu halten.
Geben Sie zunächst Folgendes ein:
#! / bin / bash
n = 0
bis [$ n -gt 20]
tun
echo $ n
((n ++))
getan
Wenn Sie Nano verwenden, speichern Sie es, indem Sie die Strg-Taste gedrückt halten und dann O und schließlich X drücken, um den Vorgang zu beenden. Benutzer von vi möchten Escape drücken und dann Folgendes eingeben: wq zum Speichern und Beenden.

Nächster Typ chmod + x tillLoop an der Eingabeaufforderung, um es ausführbar zu machen, und geben Sie dann ein ./untilLoop um es auszuführen. Sobald es ausgeführt wird, druckt die Schleife so lange neue Nummern auf Ihrem Terminal aus, bis die Variable n 20 erreicht.

Übrigens teilt die erste Zeile Ihrer Umgebung mit, welche Shell bei der Arbeit mit diesen Skripten geladen werden soll. Einige Programmierer empfehlen, immer nur #! / Bin / sh zu verwenden, um sicherzustellen, dass Ihr Skript bestimmten POSIX-Standards entspricht. Diese einfachen Skripte sollten jedoch auf den meisten modernen Systemen problemlos ausgeführt werden können.
Methode 2: Die for-Schleife
Die for-Schleife überprüft jedes Element in der angegebenen Liste und führt dann einen bestimmten Befehlssatz für diese Liste aus. Wir erstellen einen, der einige Betriebssystemnamen druckt, aber denken Sie erneut daran, dass Sie damit alles tun können, wenn Sie möchten.
Geben Sie entweder ein Nano forLoop oder vi forLoop Geben Sie an der Eingabeaufforderung das folgende Skript ein. Benutzer von vi müssen vorher in den Einfügemodus wechseln.
#! / bin / bash
unices = "GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndianDarwin HP-UX Minix"
für Unix in $ Unices
tun
echo $ unix
getan

Speichern Sie die Datei erneut, indem Sie entweder die Strg + O- und dann die Strg + X-Methode in nano oder die Esc then: wq-Methode in vi verwenden, bevor Sie den Befehl ausgeben chmod + x forLoop um es ausführbar zu machen. Sobald Sie haben, führen Sie es durch Eingabe aus ./forLoop an der Eingabeaufforderung. Die for-Schleife zwingt den Echo-Befehl, nacheinander an jedem der Elemente in der Unices-Variablen zu arbeiten. Sie können diese Liste erneut durch ein beliebiges Argument ersetzen und das Echo durch einen beliebigen Befehl ersetzen, um lange Prozesse zu automatisieren.

Methode 3: Die while-Schleife
Beginnen Sie mit der Bearbeitung der dritten Datei namens whileLoop mit nano, vi oder einem anderen Editor, den Sie verwenden möchten. Wenn Sie den grafischen Texteditor bevorzugen, können Sie dies auch für jedes dieser Projekte tun, sofern Sie sicherstellen, dass sich die Datei in demselben Verzeichnis befindet, in dem Sie arbeiten, und zwar über die Eingabeaufforderung.
In dieser Datei möchten Sie die folgenden Zeilen hinzufügen:
#! / bin / bash
n = 0
während [$ n -le 20]
tun
echo $ n
((n ++))
getan

Speichern Sie die Datei genauso, wie Sie die anderen gespeichert haben, und beenden Sie dann Ihren Texteditor. Geben Sie nach dem Beenden den Befehl ein chmod + x whileLoop damit Sie es ausführen und dann ausführen können ./while-Schleife um es auszuführen. Sie sehen dieselbe Ausgabe, die aus dem tillLoop-Skript der ersten Methode stammt, da sie in mehr als wahrscheinlich Sekundenbruchteilen von 0 bis 20 zählt.

Dies ist eine hervorragende Demonstration der Tatsache, dass es mehr als eine Möglichkeit gibt, Dinge zu tun, wenn Sie auf diese Weise mit Loops arbeiten. Obwohl es technisch gesehen keinen falschen Weg gibt, werden Sie wahrscheinlich auf Skriptautoren stoßen, die behaupten, dass Sie Ihre Skripte näher an die Art und Weise schreiben sollten, wie die Programmiersprache C die Dinge tut, oder alternativ könnten andere vorschlagen, dass Sie dies nicht tun sollten. Ehrlich gesagt gibt es wahrscheinlich viele richtige Wege, um ein Problem zu lösen.
Sie können Ihre Skripte jederzeit löschen, wenn Sie mit dem Üben fertig sind.