Ein wesentliches Merkmal jeder Computerprogrammiersprache ist die Fähigkeit, einen Codeabschnitt wiederholt auszuführen. Es spart viel Zeit und reduziert auch die Codezeilen in einem Programm. Die Bash-Programmierung ermöglicht es Benutzern, eine Aufgabe mithilfe von Schleifen immer wieder auszuführen. In diesem Artikel betrachten wir die For-Schleife Aussage.
Eine For-Schleife -Anweisung wird verwendet, um eine Reihe von Befehlen auszuführen, bis eine bestimmte Bedingung falsch wird. Beispielsweise können Sie damit einen Linux-Befehl fünfmal ausführen oder Dateien auf den Systemen lesen und verarbeiten, bis ein bestimmter Zustand erreicht ist.
Bash-For-Loop-Befehl
Die For-Schleife in der Bash-Programmierung gibt es zwei verschiedene Syntaxen:
- Die For In-Schleife
for item in (list) do command_one command_two ... done
In der obigen For In Loop-Syntax gibt es vier Schlüsselwörter – for, in, do und done. Die Liste bezieht sich auf die Werte in der ‚Liste‘. Item ist ein Variablenname, der kein Schlüsselwort in der Programmiersprache Bash ist.
Wenn wir das Programm ausführen, führt es den Befehl abhängig von der Anzahl der Elemente in der „Liste“ aus. Wenn die Liste also fünf Ziffern enthält (1 2 3 4 5), wird der Befehl fünfmal ausgeführt.
Bei jeder Iteration wird der Wert in der Liste in der item-Variablen gespeichert und im Programmrumpf verwendet.
- Die For-Schleife mit Syntax wie die der Programmiersprache C
for (( expression_1; expression_2; expression_3)) do command_one command_two ... done
Wenn Sie ein C-, C++- oder Java-Entwickler sind, sollten Sie mit der obigen For-Schleifen-Anweisung mit der Syntax vertraut sein. ‘Ausdruck_1 steht für Initialisierung, Ausdruck_2 steht für Bedingung und Ausdruck_3 steht für Aktualisierung.
Wenn wir das Programm ausführen, wird „Ausdruck_1“ ausgewertet, bevor die erste Iteration durchgeführt wird, bei der die Variablenwerte für die For-Schleife initialisiert werden.
Der Programmrumpf wird ausgeführt, bis expression_2 TRUE ist. Der Programmkörper bezieht sich hier auf die Befehle zwischen den Schlüsselwörtern do und done. Nun wird nach jeder Iteration des Programms expression_3 ausgewertet.
Nachdem Sie das verstanden haben, schauen wir uns einige Bash For Loop-Beispiele an, die Sie bei Ihren täglichen Aktivitäten mit Linux-Systemen verwenden können. Wir schreiben Skripte und führen sie im Terminal aus. Beachten Sie, dass alle Bash-Skripte die Erweiterung „.sh.“ verwenden.
Verwenden Sie die For-Schleife, um eine Reihe von Strings auszugeben
Sie können eine For In-Schleife verwenden, um eine Reihe von Zeichenfolgen auszugeben. Sehen Sie sich den Code unten an. Die drei im Programm verwendeten Dateien haben wir bereits in unserem Arbeitsverzeichnis. Das sind „testFile1“, „testFile2“ und „testFile3“.
#!/bin/bash for item in testFile1 testFile2 testFile3 do cat $item echo "Done with file $item" echo done
Die Ausgabe ist:
Das obige Programm listet den Inhalt der in der Liste angegebenen Datei auf. Das heißt, testFile1, testFile2 und testFile3. Der Befehl „cat“ ist ein Linux-Dienstprogramm, das verwendet wird, um den Inhalt einer Datei anzuzeigen.
Daher durchläuft das Programm die Dateien beginnend mit „testFile1“, führt den „cat“-Befehl darauf aus, bevor es die Anweisung „done with testFilee“ ausgibt, und iteriert zur nächsten Datei.
Nachdem alle Dateien in der Liste durchlaufen wurden, wird das Programm automatisch beendet.
„For In Loop“ mit Array-Elementen in Backup-Dateien
Sie können eine For In-Schleife verwenden, um Elemente in einem Array zu durchlaufen. Sehen Sie sich den Code unten an.
#!/bin/bash Files=('testFile1' 'testFile2' 'testFile3') for item in "${Files[@]}"; do cp $item{,.bak} echo "Created a backup of $item" done
Die Ausgabe sieht wie unten gezeigt aus.
Das obige Programm verwendet den cp-Befehl, um Backups von Dateien im Array zu erstellen. Während es jede Datei durchläuft, erstellt es eine Sicherungskopie der Daten und druckt die Meldung „Erstellte Sicherung“, bevor es zum nächsten Element im Array wechselt.
'For In Loop' mit Range
Sie können über einen Bereich von Zahlen iterieren. Zum Beispiel möchten Sie zwischen den Ziffern 1 – 100 iterieren. Wenn Sie all diese Zahlen in Ihr Programm schreiben, wird der Code ziemlich viel. Wir können dies durch die Verwendung von Bereichen lösen. Sehen Sie sich den Code unten an.
#!/bin/bash for i in {0..50} do echo "COUNT: $i" done
Die Ausgabe sollte wie unten gezeigt aussehen.
Aus der obigen Ausgabe sehen wir, dass das Programm Zahlen von 1 bis 50 gedruckt hat. Das liegt daran, dass wir ihm einen Bereich von 1 bis 50 Ziffern gegeben haben.
Angenommen, Sie möchten einen Bereich erstellen, der eine bestimmte Anzahl von Ziffern überspringt, bevor eine Ausgabe gedruckt wird. Dann müssen wir einen dritten Parameter in die Bereichssyntax aufnehmen. Siehe Code unten.
#!/bin/bash for i in {0..100..10} do echo "COUNT: $i" done
Die Ausgabe sollte wie unten gezeigt aussehen.
Die Ausgabe sollte wie unten gezeigt aussehen.
Aus dem obigen Bild sehen wir, dass das Programm Zahlen von 0 bis 100 gedruckt hat, aber zehn (10) Ziffern in jeder Iteration übersprungen hat.
‘For-Schleife’ mit C-Programmiersyntax
Nachdem wir uns mehrere Beispiele mit der „For In-Schleife“ angesehen haben, schauen wir uns die andere For-Schleifen-Syntax an. Es enthält einen Initialisierungsausdruck, der die Schleife initialisiert, einen Bedingungsausdruck, der die Ausführung des Programms bestimmt, und einen Inkrementausdruck, der den Variablenwert aktualisiert.
Sehen Sie sich den Code unten an.
#!/bin/bash for (( i=5; i>=1; i-- )) do echo "COUNT: $i" done
Die Ausgabe sollte wie unten gezeigt aussehen.
Erstellen Sie eine Endlosschleife mit der For-Schleife
Um eine Endlosschleife in Bash zu erstellen, verwenden wir die C-Programmiersyntax. Siehe Code unten.
#!/bin/bash for (( ; ; )) do echo "Use Ctrl+C to terminate the loop." echo "Starting Infinite Loop..." done
Die Ausgabe sollte wie unten gezeigt aussehen.
Um eine Endlosschleife zu verlassen, drücken Sie Strg + C, um den Vorgang abzubrechen.
Break-and-Continue-Anweisungen in einer „For-Schleife“
Beim Programmieren steuern die Break- und Continue-Anweisungen die Ausführung eines Programms. Die Break-Anweisung beendet das Programm und verlässt die Schleife. Die Continue-Anweisung hingegen erzwingt die nächste Iteration des Programms.
-
Die Break-Anweisung
Schauen wir uns das folgende Programm an, das die Break-Anweisung verwendet.
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'kali' ]]; then break fi echo "Linux_distribution: $distro" done
Die Ausgabe sollte wie unten gezeigt aussehen.
Aus dem obigen Bild sehen wir, dass „Kali“ nicht in der Ausgabe gedruckt wurde. Das liegt daran, dass wir eine „If-Bedingung“ angegeben haben, die überprüft, ob der Wert der Variablen „Distro“ enthalten ist. Wenn der Wert „Kali“ war, wurde die „Break“-Anweisung ausgeführt und die Schleife beendet.
Wie Sie sehen können, ArchLinux wurde nicht in der Ausgabe ausgegeben, weil die break-Anweisung das Programm beendet hat.
Die Continue-Anweisung
Im Gegensatz zur Break-Anweisung beendet die Continue-Anweisung das Programm an diesem Teil, erzwingt jedoch die Ausführung der nächsten Iteration des Programms.
Sehen Sie sich den Code unten an.
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'Kali' ]]; then continue fi echo "Linux_distribution: $distro" done
Die Ausgabe sollte wie unten gezeigt aussehen.
Aus dem obigen Bild sehen wir, dass „Kali“ nicht in der Ausgabe gedruckt wurde. Das liegt daran, dass wir eine „Wenn-Bedingung“ angegeben haben, die überprüft, ob der Wert der Variablen „Distro“ enthalten ist. Wenn der Wert „Kali“ war, wurde die „Continue“-Anweisung ausgeführt. Es hat die Schleife an dieser Stelle beendet, aber die Ausführung des nächsten Teils des Programms erzwungen.
Wie Sie sehen können, wurde „Kali“ nicht in der Ausgabe gedruckt, während „ArchLinux“ es war. Die Continue-Anweisung erzwang die Ausführung des nächsten Programmteils.
Weitere praktische Bash-Programme mit der For-Schleife
Nachdem wir uns mehrere Bash-Programme mit der „For Loop“-Anweisung angesehen haben, schauen wir uns Beispiele aus dem wirklichen Leben an, mit denen Sie Ihre Linux-Systeme verwalten können.
- Ein Bash-Programm zum Konvertieren von MP3-Dateien in WAV
In diesem Programm benötigen Sie das MPG123-Tool, das auf Ihrem System installiert ist. Der folgende Code sucht nach einer beliebigen Datei mit der Erweiterung „.mp3.“ und konvertiert sie mit dem Tool „mpg123“ in eine „.wav.“-Datei.
#!/bin/bash for item in ./*.mp3 do mpg123 -w music.wav $item.mp3 done
Aus dem Bild unten sehen wir, dass wir „Audio.mp3“ in „Music.wav“ konvertiert haben.
- „For Loop“-Programm, um zu prüfen, ob firefox.desktop-Dateien vorhanden sind.
Das folgende Programm durchläuft alle Dateien im Verzeichnis applications/ und gibt aus, ob firefox.desktop vorhanden ist.
#!/bin/bash for item in /usr/share/applications/* do if [ "${item}" == "/usr/share/applications/firefox.desktop" ] then echo "Firefox.Desktop is present in the applications directory"; fi done
Schlussfolgerung
Nun, da Sie die Verwendung der For-Schleife gelernt haben Anweisung in der Bash-Programmierung Programme erstellen, um verschiedene Aufgaben in Ihren Linux-Systemen zu automatisieren. Wenn Sie diesen Artikel hilfreich fanden, können Sie den Link gerne mit Ihren Freunden teilen.