Syntax von for Loop:
# Schleife durch eine Liste
Für Wert in der Liste
Tun
Befehle
Erledigt
# Schleife angegebene Werte
Für Wert in Datei1 Datei2 Datei33
Tun
Befehle
Erledigt
# Schleifen Sie durch Zeichenfolgen, die aus einem Befehl resultieren
für Wert in $ (Linux -Befehl)
Tun
Befehle
Erledigt
# Schleifen Sie durch Inkrement- oder Decrement -Zahlen
# traditionelles Verfahren für die Schleife
für ((i = 0; i<10; i++)
Tun
Befehle
Erledigt
Nach der obigen Syntax der Start- und Endblock von für Schleife ist definiert durch Tun Und Erledigt Schlüsselwörter im Bash -Skript. Die Verwendungen verschiedener Schleifen haben im nächsten Teil dieses Tutorials gezeigt.
Beispiel 1: Lesen statischer Werte
Erstellen Sie eine Bash -Datei mit dem Namen Loop1.Sch mit dem folgenden Skript zum Lesen der Werte aus einer Liste für die Loop. In diesem Beispiel werden 5 statische Werte in den Listen deklariert. Diese Schleife iteriert 5 Mal und erhält jedes Mal einen Wert aus den Listen und speichert sie in der Variablen namens Farbe, die in der Schleife druckt.
#!/Bin/Bash
# Definieren Sie die Schleife, um Stringwerte zu lesen
für Farbe in blaugrün rosa weiß rot
Tun
# Drucken Sie den Zeichenfolgenwert
echo "color = $ color"
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-2: Array-Variable lesen
Sie können für die Schleife verwenden, um die Werte eines Arrays zu iterieren. Erstellen Sie eine neue Bash -Datei mit dem Namen Loop2.Sch mit dem folgenden Skript. In diesem Beispiel ruft die Schleife die Werte aus einer Array -Variablen ab, die benannt ist ColorList, und es druckt die Ausgabe nur, wenn die Rosa Der Wert findet sich in den Array -Elementen.
#!/Bin/Bash
# Deklare und Array
ColorList = ("Blue Green Pink White Rot")
# Definieren Sie die Schleife, um die Array -Werte zu iterieren
Für Farbe in $ colorList
Tun
# Überprüfen Sie, ob der Wert rosa ist oder nicht
Wenn [$ color == 'pink']
Dann
echo "Meine Lieblingsfarbe ist $ color"
fi
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-3: Lesen Befehlszeilenargumente
Befehlszeilenargumentewerte können iteriert werden, indem für die Schleife in Bash verwendet wird. Erstellen Sie eine neue Bash -Datei mit dem Namen Loop3.Sch mit dem folgenden Skript zum Lesen und Drucken der Befehlszeilenargumentwerte für die Schleife.
#!/Bin/Bash
# Schleifen definieren, um Argumentwerte zu lesen
für myval in $*
Tun
# Drucken Sie jedes Argument aus
Echo "Argument: $ myval"
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Hier wurden zwei Argumente als Befehlszeilen-Argumente angegeben. Diese sind 'Linux' Und 'Hinweis''.
Beispiel-4: Finden von ungeraden und gleichmäßiger Zahl unter Verwendung von drei Ausdrücken
Die C-Syntax von für die Schleife ist drei Expressionssyntax. Der erste Ausdruck zeigt die Initialisierung an, der zweite Expression zeigt die Terminierungsbedingung an und der dritte Ausdruck zeigt Inkrement oder Dekrement an. Erstellen Sie eine Bash -Datei mit dem Namen Loop4.Sch mit dem folgenden Skript, um die ungeraden und sogar Zahlen von 1 bis 5 herauszufinden.
#!/Bin/Bash
# Definieren Sie für die Schleife im C-Format im C-Stil
für ((n = 1; n)<=5; n++ ))
Tun
# Überprüfen Sie, ob die Nummer ausgeglichen ist oder nicht
if (($ n%2 == 0))
Dann
echo "$ n ist überhaupt"
anders
echo "$ n ist seltsam"
fi
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-5: Dateiinhalt lesen
Sie können für die Schleife verwenden, um den Inhalt einer beliebigen Datei mithilfe der 'zu lesenKatze' Befehl. Angenommen, Sie haben eine Datei namens 'Wochentag.txt'Das enthält den Namen aller Wochentage. Erstellen Sie nun eine Bash -Datei mit dem Namen Loop5.Sch Um den Inhalt der Datei zu lesen und zu drucken.
#!/Bin/Bash
# Initialisieren Sie den Zähler
I = 1
# Definieren Sie für die Schleife, um die Textdatei zu lesen
für var in 'cat wochentag.txt'
Tun
# Den Dateiinhalt drucken
Echo "Wochentag $ i: $ var"
((i ++))
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-6: Erstellen Sie unendlich für die Schleife
Erstellen Sie eine Bash mit dem Namen Loop6.verprügeln mit dem folgenden Skript, um den Weg zu kennen, um Infinite for Loop zu deklarieren. Hier wird die Schleife für unendliche Zeiten iteriert und den Zählerwert drucken, bis der Benutzer Strg+C drückt.
#!/Bin/Bash
# Initialisieren Sie die Zählervariable
Zähler = 1
# Meldung zur Beendigung anzeigen
Echo "Drücken Sie Strg+C, um aus der Schleife zu enden"
# Infinite Loop definieren
für (( ;; ))
Tun
# Drucken Sie die Anzahl der Iteration
echo "iteriert für $ counter time (en)."
# Warte auf 1 Sekunde
Schlaf 1
# Inkrementieren Sie den Zähler
((Zähler ++))
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-7: Verwendung von für Schleife mit Befehlsersatz
Erstellen Sie eine Bash -Datei mit dem Namen Loop7.verprügeln Mit dem folgenden Skript, um die Verwendung von für die Loop zum Lesen und Drucken des Befehlsausgangs zu kennen.
#!/Bin/Bash
Echo "Alle Bash -Dateien, beginnend mit 'a' sind:"
# Lesen Sie die Ausgabe des Befehlsersatzes mit für die Schleife durch
Für Val in $ (ls a*.verprügeln)
Tun
# Den Dateinamen drucken
echo "$ val"
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-8: Bedingter Ausgang mit Pause
Erstellen Sie eine Bash -Datei mit dem Namen Loop8.verprügeln Mit dem folgenden Skript, um den Weg zum Ausgang aus der Schleife basierend auf einer bestimmten Bedingung zu kennen.
#!/Bin/Bash
# Definieren Sie A für die Schleife 10 Mal iterieren
für ((i = 1; i<=10; i++ ))
Tun
# Definieren Sie die Bedingungen zur Beendigung der Schleife
if (($ i%3 == 0 && $ i%6 == 0))
Dann
# Beenden Sie aus der Schleife
echo "gekündigt."
brechen
anders
# Drucken Sie den aktuellen Wert von i
echo "Der aktuelle Wert von I ist: $ i"
fi
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Beispiel-9: Frühe Fortsetzung mit Fortsetzung der Anweisung
Erstellen Sie eine Bash -Datei mit dem Namen Loop8.verprügeln Mit dem folgenden Skript, um zu wissen, wie man eine oder mehrere Anweisungen aus der Schleife weglassen.
#!/Bin/Bash
# Ein assoziatives Array deklarieren
Declare -a Bewerber
# Intialisieren Sie die Array -Werte
Antragsteller = ([1022] = "vorhanden" [1034] = "präsent" [1045] = "abwesend" [1067] = "präsent")
Echo "Liste der ID des Antragstellers, die anwesend sind:"
für k in $ !Bewerber [@]
Tun
# Filtern Sie die abwesende ID des Antragstellers
if [$ Bewerber [$ k] == "abwesend"]; Dann
weitermachen
anders
# Drucken Sie die ID des Bewerbers, die anwesend sind
echo $ k
fi
Erledigt
Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.
Abschluss:
In diesem Tutorial wurden verschiedene Verwendungen für die Schleife erläutert, indem verschiedene Beispiele verwendet wurden, um den Bash -Benutzern zu helfen.