Wie jede andere Skriptsprache unterstützt auch Bash Schleifen.
Schleifen eignen sich hervorragend für sich wiederholende Aufgaben. Wir können For- und While-Schleifen in unseren Bash-Skripten verwenden.
Bash-For-Schleife
Die Syntax der for-Schleife lautet:
for VARIABLE in PARAM1 PARAM2 PARAM3
do
// scope of for loop
done
Die for-Schleife wird für jeden Parameter ausgeführt. Die Parameter können Zahlen, Zahlenbereiche oder Zeichenketten usw. sein.
Bash-For-Loop-Beispiel
Dieses einfache Beispiel gibt Zahlen von 1 bis 5 mit der for-Schleife aus:
#!/bin/bash
for i in 1 2 3 4 5
do
echo "$i"
done
Ausgabe:
1
2
3
4
5
Bash For Loop - Zahlenbereich drucken
Wir können auch einen Zahlenbereich definieren, der durchlaufen werden soll:
Zum Beispiel:
for i in {1..5}
do
echo "$i"
done
Ausgabe:
1
2
3
4
5
Bash-Loop-Through-Strings
Wir können auch die for-Schleife verwenden, um String-Parameter zu durchlaufen:
#!/bin/bash
for day in MON TUE WED THU FRI SAT SUN
do
echo "$day"
done
Ausgabe:
MON
TUE
WED
THU
FRI
SAT
SUN
Bash-For-Schleife - C-Stil
Wir können auch eine Syntax im C-Stil verwenden, um die for-Schleife zu schreiben. Zum Beispiel:
#!/bin/bash
for ((i=1; i<=5; i++))
do
echo "$i"
done
Ausgabe
1
2
3
4
5
For-Schleife zum Drucken der Liste der Dateien im aktuellen Verzeichnis
Um alle Dateien im aktuellen Verzeichnis mit der Bash for-Schleife aufzulisten, verwenden wir:
#!/bin/bash
for fname in ./
do
ls -l $fname
done
Bash-While-Schleife
Bash unterstützt auch While-Schleifen. While-Schleifen führen eine Reihe von Anweisungen aus, bis eine Bedingung als wahr ausgewertet wird.
Die Syntax für die Bash-While-Schleife lautet:
while [condition]
do
//execute instructions
done
Die Bedingung wird ausgewertet, bevor Anweisungen ausgeführt werden. Daher ist es notwendig, eine Möglichkeit zu haben, die Bedingung zu aktualisieren, sonst wird die Schleife für immer ausgeführt.
Beispiel einer Bash-While-Schleife
Das Folgende ist eine einfache While-Schleife, die die Zahlen 1 bis 5 ausgibt. Die Schleife wird beendet, wenn die Zahl größer als 5 ist.
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo "$num"
let num++
done
While-Schleife im Bash-C-Stil
Wie die for-Schleife können wir auch die Bash-while-Schleife in einer C-ähnlichen Sprache schreiben.
Zum Beispiel:
#!/bin/bash
num=1
while((num <= 5))
do
echo $num
let num++
done