Abweisende Wiederholungsanweisung (while)
Als Bedingung kann nicht nur eine "klassische" Bedingung (test oder [ ])
sondern selbverständlich auch der Ergebniswert eines Kommandos oder einer Kommandofolge verwendet werden.while Bedingungdo Kommandofolge done Solange der Bedingungsausdruck den Wert 'true' liefert, wird die Schleife
ausgeführt. Beispiele:
Warten auf eine Datei (z. B. vom Hintergrundprozeß)
while [ ! -f foo ]
do
sleep 10 # Wichtig damit die Prozesslast nicht zu hoch wird
done
Pausenfüller für das Terminal
Abbruch mit DEL-Taste
while :
do
tput clear # BS löschen
echo "\n\n\n\n\n" # 5 Leerzeilen
banner $(date '+ %T ') # Uhrzeit groß
sleep 10 # 10s Pause
done
Umbenennen von Dateien durch Anhängen eines Suffix
# Aufruf change suffix datei(en)
if [ $# -lt 2 ] ; then
echo "Usage: `basename $0` suffix file(s)"
else
SUFF=$1 # Suffix speichern
shift
while [ $# -ne 0 ] # solange Parameter da sind
do
mv $1 ${1}.$SUFF # umbenennen
shift
done
fi
Umbenennen von Dateien durch Anhängen eines Suffix
Variante 2 mit for
# Aufruf change suffix datei(en)
if [ $# -lt 2 ] ; then
echo "Usage: `basename $0` suffix file(s)"
else
SUFF=$1 # Suffix speichern
shift
for FILE
do
mv $FILE ${FILE}.$SUFF # umbenennen
shift
done
fi
|