====== LU06b - Einführung in Iterationen in Bash ====== {{https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_009.htm|Shell Prog: Kapitel 4.10 - 4.11}} Iterationen (Schleifen) in Bash ermöglichen es, wiederholt eine Gruppe von Befehlen auszuführen, bis eine bestimmte Bedingung erfüllt ist. Bash bietet dafür mehrere Arten von Schleifen, die für unterschiedliche Zwecke verwendet werden können. ---- ==== 1. **for**-Schleife ==== Die **for-Schleife** wird verwendet, um durch eine Liste von Werten oder Dateien zu iterieren. === Grundstruktur: === for variable in Liste; do # Befehle done === Beispiel: === #!/bin/bash for name in Alice Bob Charlie; do echo "Hallo, $name!" done **Ausgabe:** Hallo, Alice! Hallo, Bob! Hallo, Charlie! === for-Schleife für Dateien: === #!/bin/bash for file in *.txt; do echo "Datei: $file" done ---- ==== 2. **while**-Schleife ==== Die **while-Schleife** führt Befehle aus, solange eine Bedingung wahr ist. === Grundstruktur: === while [ Bedingung ]; do # Befehle done === Beispiel: === #!/bin/bash zahl=1 while [ $zahl -le 5 ]; do echo "Zahl: $zahl" zahl=$((zahl + 1)) done **Ausgabe:** Zahl: 1 Zahl: 2 Zahl: 3 Zahl: 4 Zahl: 5 ---- ==== 3. **until**-Schleife ==== Die **until-Schleife** ist das Gegenteil der **while-Schleife**: Sie läuft, bis eine Bedingung wahr wird. === Grundstruktur: === until [ Bedingung ]; do # Befehle done === Beispiel: === #!/bin/bash zahl=1 until [ $zahl -gt 5 ]; do echo "Zahl: $zahl" zahl=$((zahl + 1)) done **Ausgabe:** Zahl: 1 Zahl: 2 Zahl: 3 Zahl: 4 Zahl: 5 ---- ==== 4. Schleifensteuerung ==== Bash bietet Befehle, um Schleifen zu kontrollieren: * **break**: Beendet die Schleife vorzeitig. * **continue**: Überspringt den aktuellen Schleifendurchlauf. === Beispiele: === # Mit break for i in {1..10}; do if [ $i -eq 5 ]; then break fi echo "Zahl: $i" done # Mit continue for i in {1..5}; do if [ $i -eq 3 ]; then continue fi echo "Zahl: $i" done ---- ==== Zusammenfassung ==== ^ Schleife ^ Beschreibung ^ Verwendung ^ | **for** | Iteriert über eine Liste von Werten oder Dateien | Wiederholung bei bekannter Anzahl von Werten | | **while** | Läuft, solange eine Bedingung wahr ist | Dynamische Bedingung | | **until** | Läuft, bis eine Bedingung wahr wird | Dynamische Bedingung, Gegenteil von while | | **break** | Beendet die Schleife | Vorzeitiges Ende | | **continue** | Überspringt den aktuellen Schleifendurchlauf | Fortsetzen der Schleife | ---- {{tag>M122-LU06}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter