Da es sich bei BASH um eine Befehlszeilensprache handelt, verfügen wir über ziemlich funktionsreiche Erfahrungen, um die Programmierkenntnisse für die Ausführung von Aufgaben im Terminal zu nutzen. Wir können Schleifen und bedingte Anweisungen in BASH-Skripten verwenden, um einige sich wiederholende und knifflige Probleme auf einfache programmatische Weise zu lösen. In diesem Artikel konzentrieren wir uns auf das for-Schleife in BASH-Skripten.
Abhängig vom Anwendungsfall und dem zu automatisierenden Problem gibt es verschiedene Möglichkeiten, Schleifen zu verwenden.
- Einfache For-Schleife
- Bereichsbasierte for-Schleife
- Array-Iteration für Schleifen
- Für Schleifen im C-Stil
- Unendliche for-Schleife
Einfache For-Schleife
Um eine for-Schleife auszuführen, können wir die folgende Syntax schreiben:
#!/bin/bash for n in a b c; do echo $n done>
- In der ersten Iteration
n>nimmt den Wert a an und das Skript gibt a aus. - In der zweiten Iteration
n>nimmt den Wert b an und das Skript gibt b aus. - In der dritten Iteration
n>nimmt den Wert c an und das Skript gibt c aus.

10 ml bis oz
Der obige Befehl durchläuft die angegebenen Elemente nach dem In Schlüsselwort nacheinander eingeben. Die Elemente können Zahlen, Zeichenfolgen oder andere Datenformen sein.
Bereichsbasierte for-Schleife
Wir können bereichsbasierte for-Schleifen verwenden. In dieser Art von Schleife können wir die Nummer angeben, die bei jeder Iteration in der Anweisung gestartet, gestoppt und erhöht werden soll (optional). Es gibt zwei Möglichkeiten, dies zu tun: durch Angabe des Inkrementierungs-/Dekrementierungswerts und durch standardmäßige Inkrementierung um eins. Die Syntax sieht so aus:
#!/bin/bash for n in {1..5}; do echo $n done> 
Im obigen Code verwenden wir {}, um einen Zahlenbereich anzugeben. Innerhalb der geschweiften Klammern geben wir den Startpunkt an, gefolgt von zwei Punkten und einem Endpunkt. Standardmäßig wird der Wert um eins erhöht. Daher drucken wir 5 Zahlen von 1 bis einschließlich 5.
Beispiel-Java-Code
#!/bin/bash for n in {1..5..2}; do echo $n done> 
Hier können wir sehen, dass die Schleife um 2 Einheiten erhöht wurde, wie in den geschweiften Klammern erwähnt. Dadurch wird die Arbeit mit Zahlen sehr einfach und bequem. Dies kann auch mit alphabetischen Zeichen verwendet werden.
NOTIZ: Wir können keine Variablen innerhalb der geschweiften Klammern verwenden, daher müssen wir die Werte fest codieren. Um die Variablen zu verwenden, sehen wir in den nächsten Abschnitten die traditionellen for-Schleifen im C-Stil.
Array-Iteration für Schleifen
Wir können in der Bash bequem über Arrays iterieren, indem wir for-Schleifen mit einer bestimmten Syntax verwenden. Wir können die speziellen Variablen in BASH verwenden, z. B. @, um auf alle Elemente im Array zuzugreifen. Schauen wir uns den Code an:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
Wir können über die Array-Elemente iterieren, indem wir den @-Operator verwenden, der alle Elemente im Array abruft. Mit der for-Schleife iterieren wir sie also nacheinander. Wir verwenden die Variable ${variable_name[@]}, wobei die geschweiften Klammern hier den Wert der Variablen s erweitern, die ein Array von Zeichenfolgen ist. Mit dem [@]-Operator greifen wir auf alle Elemente zu und iterieren so in der for-Schleife über sie. Hier das N ist der Iterator, daher können wir den Wert drucken oder die erforderliche Verarbeitung darauf durchführen.
Für Schleifen im C-Stil
Wie bereits erwähnt, müssen wir die Variablen innerhalb der for-Schleifen verwenden, um eine Reihe von Elementen zu durchlaufen. Daher spielen die for-Schleifen im C-Stil eine sehr wichtige Rolle. Mal sehen, wie wir sie nutzen.
knn
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

Wie wir sehen, können wir den Wert des Bereichs der Endbedingungen dynamisch verwenden. Denken Sie daran, dass die Leerzeichen zwischen den doppelten Klammern möglicherweise beabsichtigt sind und Teil der Syntax sind. For-Schleifen im C-Stil sind die Schleifen, die aus drei Teilen bestehen: dem initialisierenden Iterator, dem Inkrementierer/Dekrementierer und der Endbedingung.
In der obigen Syntax haben wir den Schleifeniterator/Zähler auf 1 initialisiert, der beliebig beliebig sein kann. Der zweite Teil ist die Endbedingung, hier haben wir die Variable verwendet N die vor der for-Schleife initialisiert wird und daher verwenden wir die einfache $ Operator, um den Wert der Variablen zu erhalten. Schließlich haben wir den Inkrementierer/Dekrementierer, der den Iterator/Zähler auf einen Wert ändert, der alles sein kann, außer, dass wir im Beispiel den unären Operator verwendet haben (++) um den Wert um eins zu erhöhen, was äquivalent ist i=i+1 . Daher können wir Aussagen wie verwenden i+=2, i–,++i, und so weiter und so fort.
diskrete Mathematik-Negation
Unendliche for-Schleife
Wir verwenden dies nicht oft, aber manchmal ist es nützlich, um bestimmte Dinge zum Laufen zu bringen. Die Syntax ist recht einfach und ähnelt den for-Schleifen im C-Stil.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
Die Schleife beginnt mitn>auf 4 gesetzt. Es erhöht sichn>um 1 bei jeder Iteration und gibt den Wert von ausn>bisn>wird gleich 9. Wannn>erreicht 9, diebreak>Die Anweisung wird ausgeführt und die Schleife endet. Das Skript stoppt nach dem Drucken der Zahlen 4 bis 8.

Wie wir sehen können, hat die „for“-Schleife keine Bedingungen und wird für immer wiederholt. Wir haben jedoch eine Bedingungsanweisung, um zu überprüfen, ob sie nicht für immer andauert. Wir verwenden die break-Anweisung innerhalb der if-Anweisung, um aus der Schleife herauszukommen und die Iteration mit dem Iterator zu beenden. Wir haben den Inkrementator verwendet, um die Variable in der Schleife zu erhöhen, andernfalls ist die Schleife unendlich. Natürlich brauchen wir etwas Logik, um aus der Schleife auszubrechen, und deshalb müssen wir die if-Bedingungsanweisung verwenden.