GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash For Loop mit praktischen Beispielen

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.


Linux
  1. Bash For Loop Guide und Beispiele

  2. Bash-If-Else-Anweisung mit Beispielen

  3. Beispiele für Bash-For- und While-Schleifen

  4. Bash Shell Exit Status Tutorial mit praktischen Beispielen

  5. 12 Bash-For-Loop-Beispiele für Ihr Linux-Shell-Scripting

Bash For-Schleifen mit Beispielen

Bash For Loop – Die praktischste Anleitung

Bash-Scripting Teil 2 – For- und While-Schleifen mit Beispielen

Bash Scripting Einführungstutorial mit 5 praktischen Beispielen

Tutorial zu Bash-Shell-Funktionen mit 6 praktischen Beispielen

Bash-Skript für Schleife mit Beispielen erklärt