Bash Die while-Schleife: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 10: | Zeile 10: | ||
===Beispiel=== | ===Beispiel=== | ||
*cat proggi | *cat proggi | ||
| − | <syntaxhighlight> | + | <syntaxhighlight lang=bash> |
#!/bin/bash | #!/bin/bash | ||
while [ $# -ge 1 ] | while [ $# -ge 1 ] | ||
| Zeile 33: | Zeile 33: | ||
Beispiel: | Beispiel: | ||
| − | <syntaxhighlight> | + | <syntaxhighlight lang=bash> |
#!/bin/bash | #!/bin/bash | ||
COUNTER=$1 | COUNTER=$1 | ||
| Zeile 54: | Zeile 54: | ||
Die Variable SUX wird nacheinander mit jeder Zeile der Datei | Die Variable SUX wird nacheinander mit jeder Zeile der Datei | ||
/etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist. | /etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist. | ||
| − | <syntaxhighlight> | + | <syntaxhighlight lang=bash> |
#!/bin/bash | #!/bin/bash | ||
while read SUX | while read SUX | ||
| Zeile 62: | Zeile 62: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Selbstgebautes cat | Selbstgebautes cat | ||
| − | <syntaxhighlight> | + | <syntaxhighlight lang=bash> |
#!/bin/bash | #!/bin/bash | ||
while read ZEILE | while read ZEILE | ||
| Zeile 70: | Zeile 70: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Selbstgebautes tac | Selbstgebautes tac | ||
| − | <syntaxhighlight> | + | <syntaxhighlight lang=bash> |
#!/bin/bash | #!/bin/bash | ||
COUNT=0 | COUNT=0 | ||
Version vom 31. Mai 2023, 09:02 Uhr
Was ist das?
- Das "while"-Statement in Bash ermöglicht die wiederholte Ausführung von Code, solange eine bestimmte Bedingung erfüllt ist.
- Die Syntax des "while"-Statements besteht aus dem Schlüsselwort "while", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon.
- Der Codeblock, der wiederholt ausgeführt werden soll, wird durch "do" eingeleitet und durch "done" beendet.
- Während das "while"-Statement ausgeführt wird, wird die Bedingung vor jeder Iteration überprüft.
- Dolange die Bedingung wahr ist, wird der Codeblock wiederholt ausgeführt. Sobald die Bedingung nicht mehr erfüllt ist, wird die Schleife beendet und die Ausführung wird fortgesetzt.
- Das "while"-Statement ist nützlich, um Schleifen basierend auf dynamischen Bedingungen zu erstellen und so wiederholte Aktionen in Shell-Skripten zu implementieren.
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
