Verschachtelte Schleife in Bash -Skript -Beispielen

Verschachtelte Schleife in Bash -Skript -Beispielen

Bei der Programmierung oder Skripten ist die Schleife eines der grundlegendsten und mächtigsten Konzepte. Eine Schleife führt bestimmte Aufgaben aus, bis die angegebenen Bedingungen erfüllt sind. Jede Programmierung oder Skriptsprache hat unterschiedliche Möglichkeiten zur Implementierung des Konzepts.

Schauen Sie sich in diesem Handbuch die verschachtelte Schleife in Bash -Skripting an.

Verschachtelte Schleife

Eine Schleife führt per Definition bestimmte Aufgaben aus, bis die Bedingungen erfüllt sind. Was ist, wenn die Aufgabe eine Schleife ausführt? Dies ist das Konzept einer verschachtelten Schleife. Eine Schleife in einer Schleife.

Dies ist die Grundstruktur einer Schleife.

while (Bedingung)
# etwas

Hier führt die WHOS -Schleife die im Block deklarierten Aufgaben weiter aus, solange der Zustand erfüllt ist. Bei einem verschachtelten während der Schleife würde die Struktur so aussehen.

# Hauptschleife
while (Bedingung)
# verschachtelte Schleife
while (Bedingung)
# etwas

Theoretisch können verschachtelte Schleifen in unendliche Tiefe gehen. In vielen Situationen können verschachtelte Schleifen die perfekte Lösung sein.

Schleife im Bash -Skript

Bash ist eine mächtige Skriptsprache. Es gibt verschiedene Schleifenstrukturen in der Bash. Die beliebtesten sind für, während und bis zum Schleifen. Wenn Sie mit der C/C ++ - Programmierung zuvor vertraut sind, sieht die Syntax auf jeden Fall ziemlich ähnlich aus.

Für Schleifen

Für Schleife ist eine der häufigsten und vielseitigsten Formen Ausgänge usw. Die Struktur von Schleifen im Bash -Skripting. Die Struktur ähnelt auch für die Schleife in C/C ++ viel.

Die Struktur von für die Schleife in Bash ist wie folgt.

für ((initialisieren; Bedingung; Inkrement)); Tun
# etwas
Erledigt

Die Struktur ist sehr selbsterklärend. Der Initialisierungsabschnitt ist nicht obligatorisch. Die Bedingung und das Inkrement haben jedoch höhere Priorität.

Lassen Sie es uns in die Tat umsetzen. Hier ist ein sehr simple Bash -Skript, das für die Schleife implementiert wird.

für ((i = 0; i < 5 ; i++)); do
Echo "Hallo Welt"
Erledigt

Es ist auch möglich, Liste/Reichweite als Schleifenbedingung zu verwenden. Es ist besonders nützlich, wenn Sie mit einer Liste von Dateien, Zahlenbereichen, Arrays, Befehlsausgängen usw. arbeiten. Die Struktur sieht ungefähr so ​​aus.

für Artikel in ; Tun
# etwas
Erledigt

Zum Beispiel wird das folgende Skript fünf Mal „Hello World“ drucken.

für i in 1… 5; Tun
Echo "Hallo Welt"
Erledigt

Was ist, wenn wir mit dem Inhalt eines Verzeichnisses arbeiten müssen?? Im folgenden Beispiel wird im Skript alle Dateien in /usr /bin -Verzeichnis gedruckt.

denn ich in/usr/bin/*; Tun
echo $ i
Erledigt

Was tun wir nun, um eine verschachtelte für die Schleife zu haben?? Es ist nur eine für Schleife in einem anderen. Hier ist eine verschachtelte für die Schleife mit dem vorherigen Beispiel.

für ((i = 0; i < 3 ; i++)); do
für ((j = 0; j) < 2 ; j++)); do
Echo "Hallo Welt"
Erledigt
Erledigt

Die Ausgabe wird 6 Mal „Hello World“ sein. Die äußere Schleife läuft dreimal und führt die innere Schleife zweimal aus.

Während Schleifen

Die while -Schleife ist eine weitere beliebte und intuitive Schleife, die im Bash -Skripting erhältlich ist. Die Syntax sieht so aus.

während ; Tun
# etwas
Erledigt

Im folgenden Beispiel wird das Skript fünf Mal „Hello World“ drucken.

Num = 1
während [$ num -le 5]; Tun
Echo "Hallo Welt"
Num = $ (($ num+1))
Erledigt

Wie würde es aussehen, eine verschachtelte während der Schleife zu haben? Hier ist ein einfaches Beispiel.

num_a = 1
num_b = 1
während [$ num_a -le 5]; Tun
während [$ num_b -le 5]; Tun
Echo "Hallo Welt"
num_b = $ (($ num_b+1))
Erledigt
num_a = $ (($ num_a+1))
Erledigt

Bis Schleifen

Wenn Sie einen Programmierhintergrund in C/C ++ haben, sind Sie mit der Schleife vertraut. Leider hat Bash so etwas nicht. Bis die Schleife jedoch ähnlich funktioniert. Die Syntax sieht auch ganz gleich aus.

bis [ ]; Tun
# etwas
Erledigt

Der Unterschied zwischen der Zeit und bis die Schleife ist die Testbedingung. Solange die Testbedingung wahr ist, läuft eine Weile die Schleife weiter. Eine bis zur Schleife läuft jedoch nur dann, wenn die Bedingung falsch ist.

Hier ist ein kurzes Beispiel für die while -Schleife. Es wird die Multiplikationstabelle von 2 drucken.

num_a = 1
bis [$ num_a -GT 10]; Tun
echo $ (($ num_a * 2))
num_a = $ (($ num_a+1))
Erledigt

Schleifenpause

Wenn in bestimmten Situationen bestimmte Bedingungen erfüllt sind, wird das Ausführen des Restes der Schleife überflüssig. Loop -Pausen sind ein interessant. Es ist wichtiger für verschachtelte Schleifen als höher als die Schleifen, desto mehr Ressourcenverbrauch und Ineffizienz.

Hier wird das Folgende für die Schleife aufhören, auszuführen, sobald sie den Zustand erreicht.

für ((i = 1; i<=100;i++)); do
echo $ i
wenn [$ i -eq 10]; Dann
brechen
fi
Erledigt

Schauen Sie sich an, wie Sie während der Schleife brechen, um eine eingehende Erklärung und Demonstration von Schleifenpausen zu erhalten.

Abschließende Gedanken

Eine verschachtelte Schleife ist ein einfaches und mächtiges Konzept, um zu verstehen und umzusetzen. Hoffentlich konnte dieser Leitfaden das Konzept beschreiben und demonstrieren.

Interessiert an mehr Bash -Skriptleitfäden? Schauen Sie sich die folgenden Anleitungen an.

  • Unendliche Schleife verprügeln
  • Bash -Skript -Benutzereingabe
  • BASH -Funktion Rückgabe -Array

Happy Computing!