Eine while-Schleife führt die Anweisungen im Schleifenrumpf solange aus, wie ein Test des angegebenen Ausdrucks (vor Eintritt in den Schleifenrumpf) 0, also false ergibt.
Als Bedingung kann man jedes Kommando nehmen; häufig wird dafür test
beziehungsweise [ ... ]
verwendet
(siehe test-Ausdrücke, true, false).
Die Struktur einer solchen Schleife sieht so aus:
while
Ausdruck
do
# Schleifenrumpf
Kommando1
...
done
Zusammen mit expr (siehe Numerik light mit expr) kann man damit auch echte Zählschleifen bauen.
i=-1
while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`
done
i=-1
while [ `echo $i "<"= 10 | bc` != 0 ]
do
echo $i
i=`echo $i + 1 | bc`
done
#!/bin/bash
# nur BASH!!!
i=-1
while [ $i -le 10 ]
do
echo $i
i=$[ $i + 1 ] # oder: i=$(($i+1)) oder : $((i=$i+1))
done
Die einzeilige Version sieht so aus:
while
Ausdruck; do
Kommando1;
...; done
AnyWare@Wachtler.de