while-Schleifen
laufen eine gewisse Anweisung durch, solange die Bedingung erfüllt ist. Das kann man gebrauchen, wenn man die Zahlen 1-10 ausgeben will, die Schleife muß solange laufen, bis der Zähler nicht kleinergleich als 10 ist (immer dran denken: solange die Bedingung erfüllt ist).
#!/bin/bash
#Programm while.sh
i=0 #Zähler auf Null setzen
#So lange durchlaufen bis i kleiner 10 ist
while [ $i -le 10 ]; do
echo $i #Zähler ausgeben
i=$[$i+1] #Zähler um eins erhöhen
done
exit 0
#Programm while.sh
i=0 #Zähler auf Null setzen
#So lange durchlaufen bis i kleiner 10 ist
while [ $i -le 10 ]; do
echo $i #Zähler ausgeben
i=$[$i+1] #Zähler um eins erhöhen
done
exit 0
Eine Endlosschleife wäre folgendes.
while true; do date; sleep 2; done
for-Schleifen
verhalten sich etwas anders. Sie arbeiten der Reihe nach die angegebene Liste ab.
Hier wird das Homeverzeichnis mit Zeilennummern ausgegeben.
A=1
for i in `ls /home`;do
echo $A“. „$i
A=$[$A+1]
done
exit 0
for i in `ls /home`;do
echo $A“. „$i
A=$[$A+1]
done
exit 0
Oder als Einzeiler. Dieser Funktioniert aber nur richtig, wenn $A nicht gesetzt ist, oder mit unset A gelöscht wurde.
for i in `ls /home`;do ((A++)); echo $A“. „$i;done
Hier noch 2 Einzeiler die immer 5 mal ausgeführt werden.
for i in `seq 1 5` ; do echo $i ; date ; sleep 2 ; done
for ((i=1;i<=5;i++)); do echo $i“. „`date`; sleep 2; done