Loops


bash for Schleife

# grundlegendes Konstrukt
for argument in [list]
do
  Befehle...
done

Mit jedem neuen Durchlauf der Befehle in der Schleife, nimmt das argument den nächsten Wert in list an. Dann werden die Befehle ausgeführt.

# Schleife ueber einen Array
NAMES=(Joe Jenny Sara Tony)
for N in ${NAMES[@]} ; do
  echo "Mein Name ist $N"
done

# Schleife ueber die Ausgabe eines Befehls
for f in $( ls prog.sh /etc/localtime ) ; do
  echo "Datei ist: $f"
done

bash while Schleife

# grundlegendes Konstrukt
while [ Bedingung ]
do
  Befehle...
done

Das while Konstrukt testet die Bedingung und, falls wahr, führt die Befehle aus. Es wiederholt dies solange, wie die Bedingung wahr ergibt.

COUNT=4
while [ $COUNT -gt 0 ]; do
  echo "Wert von count ist: $COUNT"
  COUNT=$(($COUNT - 1))
done

bash until Schleife

# grundlegendes Konstrukt
until [ Bedingung ]
do
  Befehle...
done

Das until Konstrukt testet die Bedingung und, falls falsch, führt die Befehle aus. Es wiederholt dies solange, wie die Bedingung wahr ergibt (das Gegenteil des while Konstrukt).

COUNT=1
until [ $COUNT -gt 5 ]; do
  echo "Wert von count ist: $COUNT"
  COUNT=$(($COUNT + 1))
done

"break" und "continue" Schlüsselwort

break und continue beeinflussen den Kontrollfluss einer for, while und until Schleife. break benutzt man um den Rest der Schleifenausführung abzubrechen. continue hingegen bricht nur den aktuellen Durchgang ab und macht mit dem nächsten weiter. Ein paar Beispiele:

# Gibt 0,1,2,3,4 aus

COUNT=0
while [ $COUNT -ge 0 ]; do
  echo "Wert von COUNT ist: $COUNT"
  COUNT=$((COUNT+1))
  if [ $COUNT -ge 5 ] ; then
    break
  fi
done

# Gibt nur ungerade Zahlen aus - 1,3,5,7,9
COUNT=0
while [ $COUNT -lt 10 ]; do
  COUNT=$((COUNT+1))
  # Checke ob COUNT gerade ist
  if [ $(($COUNT % 2)) = 0 ] ; then
    continue
  fi
  echo $COUNT
done

übung

In dieser Übung iterieren wir über eine Liste von Zahlen und geben nur die geraden von ihnen aus. Wir hören auf, wenn wir die Zahl 237 in der Liste erreicht haben.


Copyright © learnshell.org. Read our Terms of Use and Privacy Policy