while-Schleife

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.

Beispiel 16   Das folgende Beispiel gibt die Zahlen von -1 bis 10 aus:
i=-1
while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`
done

Beispiel 17   Statt expr kann man wahlweise auch bc nehmen. Die Schleife würde dann so aussehen:
i=-1
while [ `echo $i "<"= 10 | bc` != 0 ]
do
echo $i
i=`echo $i + 1 | bc`
done

Beispiel 18   Eine letzte Variante derselben Schleife nutzt weder expr noch bc, sondern die interne Arithmetik der bash. Dieses Skript ist deshalb nur mit der bash lauffähig!
#!/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