===== Loops (Schleifen) in Bash ===== Internal reference: topics/03-1.md \\ ==== 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 \\ ==== 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 \\ ==== 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. \\ === 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 ---- [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Daniel Garavaldi