![]() ![]() ![]() |
![]() ![]() |
Die for-Schleife arbeitet auf einer Liste, wobei eine Schleifenvariable der Reihe nach mit jedem Element der Liste belegt wird.
for Variable [in Liste]; do <Kommando(s)> done
Fehlt die Angabe der Liste, wird versucht, die Schleifenvariable mit einer Liste aus der Umgebung zu verbinden. In einem Shellprogramm ist dies z.B. die Liste der übergebenen Kommandozeilenparameter. Mit dem Kommando set kann auch explizit eine Liste erzeugt werden.
Beispiele
user@sonne> for i in a b c; do echo $i; done a b c user@sonne> for i in *.tex; do cp $i $i~; done user@sonne> for i in $(find / -name "*.tex"); > do echo $i; cp $i $i~; done user@sonne> set 1 2 3 4 user@sonne> for i do echo $i; done 1 2 3 4
while führt die Schleife so lange aus, bis die Bedingung nicht mehr erfüllt ist.
while <Bedingung>; do <Kommando(s)> done
Beispiel
user@sonne> i=2;z=1; while [ $z -le 5 ]; do > echo $z $i; i=$[$i*$i]; z=$[$z+1]; done 1 2 2 4 3 16 4 256 5 65536
Im Unterschied zu while-Schleifen wird bei until die Bedingung negiert formuliert.
until <Bedingung>; do <Kommando(s)> done
Beispiele
user@sonne> i=1; until [ $i -gt 5 ]; do echo $i; i=$[$i+1]; > done 1 2 3 4 5 user@sonne> i=2;z=1; until [ $z -gt 5 ]; do > echo $z $i; i=$[$i*$i]; z=$[$z+1]; done 1 2 2 4 3 16 4 256 5 65536
![]() ![]() ![]() |
![]() ![]() |