Schleifen in der Bash

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

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

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