Schleifen sind kritische Strukturen in jeder Programmiersprache und spielen eine Rolle bei der Ausführung sich wiederholender Aufgaben, die sonst in normalem Code umständlich und zeitaufwändig auszuführen wären. Beim Bash-Skripting dienen Schleifen demselben Zweck, und in diesem Leitfaden sehen wir uns verschiedene Arten von Schleifen und ihre Verwendung genauer an.
For-Schleifen
Eine For-Schleife wird zum Iterieren über eine Liste von Objekten oder Elementen verwendet. Die Liste kann Zahlen, Zeichenketten, Zeichen oder sogar Arrays enthalten.
Eine for-Schleife hat die folgende Struktur.
for item in list_of_items do command1 command2 done
Nehmen wir ein paar Beispiele:
Durchlaufen einer Liste von Strings
Im folgenden Beispiel iterieren wir über eine Liste von Zeichenfolgen – in diesem Fall Planeten – die vier Elemente umfasst. Nach der Iteration drucken wir jedes Element mit dem Echo auf das verlorene Objekt Befehl.
for planet in Mercury Venus Earth Mars Jupiter do echo $planet done
Weisen Sie dann Ausführungsberechtigungen zu und führen Sie for_loop.sh aus Bash-Skript. Die Ausgabe zeigt alle in der Liste enthaltenen Elemente an.
$ ./for_loop.sh
Einen Zahlenbereich durchlaufen
Mit for-Schleifen können Sie auch eine Sequenz in einem Zahlenbereich angeben, indem Sie den Start- und Endpunkt mit dem bereitgestellten Sequenzausdruck definieren.
{START..END}
Das folgende Beispiel zeigt eine for-Schleife, die Zahlen von 1 bis 10 anzeigt
for n in {0..10} do echo value: $n done
Wenn Sie die Schleife ausführen, erhalten Sie die angezeigte Ausgabe.
Zusätzlich können Sie die Anzahl der schrittweisen Inkremente zwischen Werten mit dem folgenden Sequenzausdruck angeben.
{START..END..STEPWISE_INCREMENT}
Die folgende Schleife zeigt beispielsweise Zahlen von 1 bis 10 mit einer Schrittweite von 2 zwischen den Werten an.
for n in {0..10..2} do echo value: $n done
Wenn sie ausgeführt wird, liefert die Schleife die folgende Ausgabe.
Ein Array von Elementen durchlaufen
Außerdem können Sie for-Schleifen nutzen, um über ein Array von Elementen zu iterieren. Hier haben wir zum Beispiel ein Array namens „MOVIES“ mit verschiedenen Elementen, die Filmtitel sind.
#!/bin/bash MOVIES=('Happy Feet' 'Who killed Sara' 'Lupin' 'Money Heist' 'House of cards') for movie in "${MOVIES[@]}"; do echo Movie: $movie done
Wenn das Skript ausgeführt wird, durchläuft die for-Schleife das gesamte Array und gibt die Filmtitel wie gezeigt aus.
Zusammenfassung
Wie Sie bemerkt haben, sind for-Schleifen recht einfach und praktisch. Sie sorgen für einen saubereren Code, indem sie sich wiederholenden Code eliminieren, der für den Benutzer zeitaufwändig ist. Sich wiederholende Aufgaben lassen sich leicht in wenigen einfachen Zeilen erledigen.