Bash while Schleife: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 35: | Zeile 35: | ||
done | done | ||
echo "BUMM BUMM" | echo "BUMM BUMM" | ||
| − | </syntaxhighlight> | + | </syntaxhighlight lang=bash> |
*./countdown 5 | *./countdown 5 | ||
5 | 5 | ||
| Zeile 47: | Zeile 47: | ||
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 61: | Zeile 61: | ||
echo $ZEILE | echo $ZEILE | ||
done < $1 | done < $1 | ||
| − | </syntaxhighlight> | + | </syntaxhighlight lang=bash> |
Selbstgebautes tac | Selbstgebautes tac | ||
<syntaxhighlight> | <syntaxhighlight> | ||
Version vom 6. Juni 2024, 08:16 Uhr
Die while-Schleife
Einfache Form
Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.
- 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"
</syntaxhighlight lang=bash>
*./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.
<syntaxhighlight lang=bash>
#!/bin/bash
while read SUX
do
echo $SUX
done < /etc/passwdSelbstgebautes cat
#!/bin/bash
while read ZEILE
do
echo $ZEILE
done < $1
</syntaxhighlight lang=bash>
Selbstgebautes tac
<syntaxhighlight>
#!/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