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.


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

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

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

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

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

Marcel Suter

  • modul/m122/learningunits/lu06/iteration.txt
  • Zuletzt geändert: 2024/11/18 08:40
  • von msuter