Bash Die while-Schleife
Was ist das?
- Die While-Schleife in Bash wird verwendet, um einen Block von Code so lange auszuführen, wie eine bestimmte Bedingung wahr ist.
- Die grundlegende Syntax einer While-Schleife in Bash lautet:
while [ Bedingung ]
do
# Code, der wiederholt ausgeführt werden soll
done
Hier sind die Schritte, die bei der Ausführung einer While-Schleife in Bash ablaufen:
Die Bedingung wird zuerst überprüft. Wenn die Bedingung wahr (true) ist, wird der Codeblock innerhalb der Schleife ausgeführt. Wenn die Bedingung falsch (false) ist, wird die Schleife übersprungen, und die Ausführung des Programms geht zum nächsten Abschnitt nach der Schleife.
Der Codeblock innerhalb der Schleife wird ausgeführt. Dieser Code kann eine oder mehrere Anweisungen enthalten, die wiederholt werden sollen. Du kannst Variablen aktualisieren, Berechnungen durchführen, Dateien bearbeiten oder andere Aufgaben ausführen.
Nachdem der Codeblock ausgeführt wurde, kehrt das Programm zur Überprüfung der Bedingung zurück. Wenn die Bedingung immer noch wahr ist, wird der Codeblock erneut ausgeführt. Wenn die Bedingung falsch wird, wird die Schleife beendet, und die Ausführung des Programms wird fortgesetzt.
Schritte 2 und 3 werden so lange wiederholt, wie die Bedingung wahr ist. Sobald die Bedingung falsch wird, wird die While-Schleife beendet, und das Programm fährt mit dem restlichen Code fort.
Es ist wichtig sicherzustellen, dass der Code innerhalb der While-Schleife so gestaltet ist, dass die Bedingung irgendwann falsch wird, um eine Endlosschleife zu vermeiden. Andernfalls könnte der Code unendlich wiederholt werden, was zu einer unerwünschten Ausführung führen würde.
Die Bedingung in einer While-Schleife kann verschiedene Ausdrücke und Vergleiche enthalten, z. B. Überprüfungen von Variablenwerten, Dateieigenschaften oder Benutzereingaben. Solange die Bedingung wahr ist, wird der Codeblock wiederholt ausgeführt. Sobald die Bedingung falsch wird, wird die Schleife beendet.
Einfache Form
Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.
Beispiel
- cat proggi
#!/bin/bash
while [ $# -ge 1 ]
do
echo $1
echo $#
shift
done
- ./proggi blau gelb gruen
blau 3 gelb 2 gruen 1
Darstellung als Struktogramm nach Nassi / Shneiderman:
Beispiel:
#!/bin/bash
COUNTER=$1
while [ $COUNTER -ge 1 ]
do
echo $COUNTER
COUNTER=$(($COUNTER-1))
done
echo "BUMM BUMM"
- ./countdown 5
5 4 3 2 1 BUMM BUMM
Sonderform von while
Die Variable SUX wird nacheinander mit jeder Zeile der Datei /etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist.
#!/bin/bash
while read SUX
do
echo $SUX
done < /etc/passwd
Selbstgebautes cat
#!/bin/bash
while read ZEILE
do
echo $ZEILE
done < $1
Selbstgebautes tac
#!/bin/bash
COUNT=0
while read ZEILE
do
FELD[$COUNT]=$ZEILE
COUNT=$(($COUNT+1))
done < $1
while [ $COUNT -ge 0 ]
do
echo ${FELD[$COUNT]}
COUNT=$(($COUNT-1))
done
