LU06b - Einführung in Iterationen in Bash
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 |