Bash für Schleifenbeispiele

Bash für Schleifenbeispiele
Schleifen sind ein sehr wesentlicher Bestandteil jeder Art von Programmier- oder Skriptsprachen. Wie bei jeder anderen Standardprogrammierung werden Schleifen für die Bash -Programmierung verwendet, um sich wiederholte Aufgaben zu erledigen. Unter den drei Arten von Schleifen (während doch für die Schleife sehr nützlich, um verschiedene Arten von iterativen Aufgaben zu erledigen. Die grundlegenden Verwendungen von 'for' Loop werden hier gezeigt. Aber für die Schleife kann für einige Aufgaben im Voraus Level verwendet werden. Wenn Sie mehr Verwendungszwecke für Loop wissen möchten, müssen Sie dieses Tutorial lesen. 12 nützlichste Beispiele für 'for' Loop werden in diesem Tutorial angezeigt, um andere spezifische Verwendungen von 'for' Loop in Bash zu kennen.

Syntax:

Für Schleife kann auf zwei Arten in Bash verwendet werden. Ein Weg ist 'for-in' und ein anderer Weg ist die C-Syntax im C-Stil. Beide Syntaxe sind unten gezeigt.

Für Variable in der Liste
Tun
Aussagen
Erledigt
Oder
für ((expression1; expression2; expression3))
Tun
Aussagen
Erledigt

Beispiel 1: Damit die Schleife Eingabevariable lesen kann

Die Liste der vordefinierten Zeichenfolgen oder des Arrays kann leicht gelesen werden, indem sie für die Schleife "für die Schleife" verwendet wird. Wie der Inhalt einer Eingabevariablen durch die Verwendung von 'für' Schleife verwendet werden kann, wird in diesem Beispiel angezeigt. Erstellen Sie eine Datei namens 'Forloop1.Sch'Mit dem folgenden Skript. Nach dem Ausführen des Skripts wird ein Eingangswert eines Textes mehrerer Wörter entnommen. Hier wird für die Schleife verwendet, um den Text in Wörtern zu teilen, basierend auf Weißraum.

Forloop1.Sch

#!/Bin/Bash
Echo "Geben Sie einen Text mit mehreren Wörtern ein" ein "
Text lesen
I = 1
Für Wort in $ text
Tun
echo "Wort no- $ i = $ word"
((i = $ i+1))
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash forloop1.Sch

Hier wird ein Text mit 5 Wörtern aufgenommen, sodass fünf Ausgangszeilen gedruckt werden.

Beispiel-2: Für Schleife mit einer Break-Anweisung

Die Anweisung "Break" wird im Inneren verwendet, damit die Schleife aus der Schleife endet. Erstellen Sie eine Datei namens 'Forloop2.Sch' mit dem folgenden Code. Für Loop wird hier eine Liste von vier Personen lesen. Hier werden zwei Bedingungen getestet. Wenn der Personname ist 'Amir ' Und die Farbe ist 'Blau' Dann endet die Schleife nach dem Drucken des Namens und der Farbe der Person. Die Farbwerte der zweiten für die Schleife werden gedruckt, bis der Farbwert "Blue" übereinstimmt.

Forloop2.Sch

Für den Namen in Watson Micheal Sinha Amir Lily
Tun
Wenn [$ name == 'amir']
Dann
für Farbe in rotgrün blau weiß
Tun
Wenn [$ color == "blau"]
Dann
Echo "Die Lieblingsfarbe von $ name ist $ color"
brechen
anders
echo "Die aktuelle Farbe ist $ color"
fi
Erledigt
fi
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash forloop2.Sch

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt. Zunächst werden zwei Farben, "Rot" und "Grün", gedruckt. Wenn der Wert 'Blue' erschien, druckte er den Namen und den Farbwert der Person und beendete die Schleife für die Anweisung "Break".

Beispiel-3: Für die Schleife mit Fortsetzung Anweisung

Die Anweisung "Fortsetzung" wird in der 'for' -Schleife verwendet, um eine Anweisung basierend auf einer bestimmten Bedingung zu überspringen. Erstellen Sie eine Datei mit dem Namen 'Forloop3.Sch' mit dem folgenden Skript. Hier eine Variable benannt $ Kurse wird verwendet, um einen Textwert zuzuweisen. Für die Schleife wird die Variable, $ Kurse, verwendet. Der Textwert wird basierend auf dem Speicherplatz aufgeteilt und durch die 'for'-Schleife gelesen. Wenn der Wert "Oracle" ist $ Kurs Dann druckt es "Oracle ist jetzt nicht verfügbar". Für andere Werte "Die Klasse des $ Course läuft". Der Kurs, der nicht verfügbar ist.

Forloop3.Sch

#!/bin/sh
Kurse = "Java Php Oracle VB.Netz"
Für Kurs in $ Kursen
Tun
Wenn [$ cours == 'Oracle']
Dann
echo "$ cours ist jetzt nicht erhältlich"
weitermachen
fi
echo "Die Klasse des $ Course läuft"
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash forloop3.Sch

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Beispiel-4: Verwenden Sie die Befehlsausgabe als Liste

Jeder Bash -Befehlsausgang kann in der 'for' -Schleife mit BackTick (') verwendet werden. Erstellen Sie eine Datei mit dem Namen 'Forloop4.Sch' mit dem folgenden Skript. Hier, 'ls *.txt' Der Befehl wird in der Schleife verwendet. Dieser Befehl generiert eine Liste der Textdatei aus dem aktuellen Verzeichnis. Für die Schleife wird jeder Dateinamen aus der Befehlsausgabe iteriert und in der Variablen gespeichert $ Dateiname das wird später drucken. Hier, $ n Variable wird verwendet, um die Dateinummer anzuzeigen.

Forloop4.Sch

n = 1
für Dateiname in 'ls *.txt'
Tun
Echo "Datei Nr. $ N: $ Dateiname"
((n ++))
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash forloop1.Sch

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Beispiel-5: Damit die Schleife einen Bereich lesen kann

Für die Schleife kann zum Lesebereich von Daten verwendet werden. Das folgende Beispiel Lesen Sie einen Charakterbereich und suchen Sie jedes Zeichen im Text oder nicht. Erstellen Sie eine Datei mit dem Namen 'Forloop5.Sch' und fügen Sie das folgende Skript hinzu. Hier wird der Bereich [a-z] in 'für' Loop verwendet. Das bedeutet, dass die Schleife für jeden Großbuchstaben 26 Mal für 26 Mal iteriert wird. Jedes Zeichen wird in $ text mit "awk" -Befehl durchsucht. Wenn ein Zeichen gefunden wird, speichert er den Wert in $ Ergebnis. Nächste. $ ergebnis wird auf Inhalte überprüft. Wenn es nicht leer ist, wird eine Nachricht gedruckt.

Forloop5.Sch

text = "Bash Scripting Language"
für c in a… z
Tun
result = 'printf "$ text" | awk "/$ c/" '
Wenn [[$ resultieren != ""]]
Dann
echo "$ c existiert im Text"
fi
Erledigt

Führen Sie das Skript aus.

$ bash Forloop5.Sch

Hier fanden die Alphabete 'B', 'L' und 'S' im Text "Bash Scripting Language". Daher werden drei Ausgangszeilen gedruckt.

Beispiel-6: Damit die Schleife einen Bereich mit dem Inkrement lesen kann

Das Beispiel zeigt, wie Sie "für" Loop "verwenden können, um alle gleichmäßigen Zahlen innerhalb eines bestimmten Bereichs herauszufinden. Erstellen Sie eine Datei mit dem Namen 'Forloop6.Sch' und fügen Sie das folgende Skript hinzu. Hier wird in der Schleife ein Bereich von [2-20] verwendet, wobei jeder Schritt um 2 erhöht wird. Die Schleife iteriert 10 Mal und druckt die Nummer in jedem Schritt aus.

Forloop6.Sch

Echo "Drucken Sie alle sogar Zahlen von 1 bis 20"
für n in 2… 20… 2
Tun
echo -n "$ n"
Erledigt
printf "\ ndone \ n"

Führen Sie das Skript aus.

$ bash Forloop6.Sch

Alle gleichmäßigen Zahlen innerhalb von 2 bis 20 werden nach dem Ausführen des Skripts gedruckt.

Beispiel-7: Damit die Schleife mit Datei funktioniert

Dieses Beispiel zeigt, wie Sie für die Schleife eine Liste mit bestimmten Dateien lesen können. Erstellen Sie eine Datei mit dem Namen, 'Forloop7.Sch' und fügen Sie das folgende Skript hinzu. Hier wird die Schleife an die Liste aller Textdateien aus dem aktuellen Verzeichnis verwendet und die Dateierweiterung von 'ersetzt'.txt 'zu'.Dokument '.

Forloop7.Sch

echo "Ersetzen Sie die Dateierweiterung aller Textdatei in die DOC -Datei."
für Dateiname in *.txt; Tun
MV "$ Dateiname" "$ Dateiname%.txt.doc "
Erledigt
Echo "Ersatz erfolgt erfolgreich"

Ausgang:

Erstellen Sie zuerst eine Textdatei, wenn im aktuellen Verzeichnis keine Textdatei vorliegt. Hier eine Textdatei namens 'Newfile.TXT 'wird mit dem Befehl "Katzen" erstellt.

$ cat> newfile.txt

Führen Sie das oben erwähnte Skript aus.

$ bash forloop7.Sch

Überprüfen Sie als Nächst.

Beispiel-8: Für Schleife mit Sequenzbefehl

Das folgende Beispiel zeigt, wie Sie verwenden können. 'SEQ'In' for 'Loop, um eine Liste der sequentiellen Nummer zu drucken. Der Befehl 'SEQ' funktioniert ähnlich wie der Bereich mit Inkrement. Erstellen Sie eine Datei mit dem Namen 'Forloop8.Sch' und fügen Sie das folgende Skript hinzu. Die Schleife druckt die Zahlen zwischen 1 und 30.

Forloop8.Sch

Echo "Drucknummern durch überspringen 3"
für SQ in $ (SEQ 1 3 30)
Tun
Echo "Sequenznummer: $ sq"
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash forloop8.Sch

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Beispiel-9: Verwenden von Infinite for Loop

Die unendliche Schleife kann verwendet werden, um sich wiederholte Aufgaben zu erledigen, bis ein bestimmter Zustand erscheint. Erstellen Sie eine Datei mit dem Namen 'Forloop9.Sch' mit dem folgenden Skript, um die Verwendung der unendlichen Schleife zu überprüfen. Hier wird in der Schleife keine Kündigungsbedingung definiert. Die Schleife zeigt das Menü mit 5 Listen an, bis die Nummer 5 gedrückt wird. Es wird eine bestimmte Nachricht für andere Nummern von 1 bis 4 gedruckt und das Menü erneut angezeigt.

Forloop9.Sch

für (( ; ; ))
Tun
Echo "1. Erfolgsnachricht drucken "
Echo "2. Informationsnachricht drucken "
Echo "3. Warnmeldung drucken "
Echo "4. Fehlermeldung drucken "
Echo "5. Ausfahrt"
echo -n "Wählen Sie eine beliebige Nummer aus [1-5] aus:"
Antwort lesen
Fall "$ Antwort" in
1) Echo "erfolgreich abgeschlossen.";;;
2) Echo "Ungültige Eingabe" ;;
3) Echo "Ihr Computer hat einen niedrigen Akku" ;;
4) Echo "Falsche Anzahl von Argumenten werden eingereicht" ;;
5) Beenden Sie 0 ;;
*) Echo "Falsche Auswahl" ;;
ESAC
Erledigt

Führen Sie das Skript aus.

$ bash Forloop9.Sch

Hier wird 9 beim ersten Mal gedrückt, das in der Liste nicht vorhanden ist. Für diese Eingabe wird es "Falsche Auswahl" gedruckt und das Menü erneut angezeigt. Als nächstes wird 1 gedrückt und eine Nachricht "erfolgreich abgeschlossen" angezeigt, die "erfolgreich abgeschlossen" angezeigt werden. Als nächstes wird 5 gepresst, aus dem Programm zu enden.

Beispiel-10: Verwenden Sie für Schleife ohne die Liste.

Für die Schleife kann ohne Liste, Array oder Befehlsausgabe verwendet werden. In diesem Beispiel können Sie die Argumente für die Befehlszeilen für die "Loop -zum" -Sloop verwenden können. Erstellen Sie eine Datei mit dem Namen, 'Forloop10.Sch' und fügen Sie das folgende Skript hinzu. Die Schleife wird basierend auf der Anzahl der Befehlszeilenargumente iteriert. Die $ Countervariable wird verwendet, um jeden Schritt der Schleife zu finden, die in jedem Schritt um 1 erhöht wird.

Forloop10.Sch

Zähler = 1
für Text
Tun
Wenn [$ counter -eq 2]
Dann
Str = "Meine Lieblingsfarbe ist"
Elif [$ counter -eq 3]
Dann
Str = "Ich liebe"
anders
Str = "Ich mag"
fi
echo "$ str $ text"
((counter = $ counter+1))
Erledigt

Führen Sie das Skript mit Befehlszeilenargumentwerten aus.

$ bash forloop10.SH ICE-CREAM Blue-Programmierung

Das Skript hat die Nachricht "Ich mag Eis mögen" gedruckt, wenn der $ theke 1 ist.

Beispiel 11: Lesen von Dateien und Verzeichnissen, indem Sie für die Schleife verwenden

Für die Schleife kann die Liste der Dateien und Ordner des aktuellen Verzeichnisses drucken. Erstellen Sie eine Datei namens 'Forloop11.Sch'und fügen Sie das folgende Skript hinzu. Hier wird in der 'for' -Schleife '*' Symbol verwendet, um die Dateien und Ordner des aktuellen Verzeichnisses zu lesen. In der Schleife wird jeder Datei- oder Ordnername in jedem Schritt gelesen und drucken Sie sie im Terminal mit einem "Registerkarte".

Forloop11.Sch

printf "Die Dateien und Ordner des aktuellen Verzeichnisses einstellen ... \ n \ n"
Für die Liste in *
Tun
printf "$ list \ t"
Erledigt
printf "\ n \ ndone \ n"

Führen Sie das Skript aus.

$ bash forloop11.Sch

Datei- und Ordnernamen des aktuellen Arbeitsverzeichnisses werden nach Ausführen des Skripts gedruckt.

Beispiel-12: Verwenden eines Kommas im Bash C-Stil für die Schleife

C-Stil 'für' Loop wird auch in Bash unterstützt und diese 'für' Loop hat drei Ausdrücke. Dies sind Initialisierung, Terminierungsbedingung und Inkrement oder Dekrement. Mit dem Komma (,) können Sie jedoch mehrere Initialisierungsvariablen in Bash definieren, die in diesem Beispiel gezeigt werden. Erstellen Sie eine Datei namens 'Forloop12.Sch' und fügen Sie das folgende Skript hinzu. In diesem Skript wird verschachtelt 'für' Schleife verwendet. Zwei Initialisierungsvariablen, $ Team, Und $ Jersey werden in der ersten 'für' Schleife deklariert. Die erste Schleife wird beendet, wenn $ Team wird mehr als 2. Es gibt keine Initialisierungsvariable im inneren 'für' Schleife und die innere Schleife wird beendet, wobei die $ Jersey ist mehr als 3. $ Jersey wird nach Abschluss der Innenschleife der Iteration auf 1 gesetzt. Die äußere Schleife wird also zweimal iteriert und die innere Schleife wird dreimal iteriert.

Forloop12.Sch

für ((Team = 1, Jersey = 1; Team; <= 2 ; team++))
Tun
für (; Jersey <= 3 ; jersey++))
Tun
Echo "Team No- $ Team, Jersey No- $ Jersey"
Erledigt
Jersey = 1
Erledigt

Führen Sie das Skript aus.

$ bash forloop12.Sch

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Abschluss:

Viele effektive Verwendungszwecke von 'for' Loop werden in diesem Tutorial zu erklären. Nach dem Üben der obigen Beispiele hoffen, dass die Leser ein klares Wissen über 'für' Schleife und 0 erwerben, um diese Schleife im Bash -Skript ordnungsgemäß zu verwenden.