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.

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

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

Alle Zeilen einer Datei lesen

Diese Iteration liest eine Datei zeilenweise und stellt die Daten in die Variable data. Die Variable mit dem Dateinamen wird in der letzten Zeile mittels Umleitung (<) angegeben.

filename=someFile.dat
while read data; do
    # Process the data
done < $filename
 
===== until-Schleife =====
 
Die **until-Schleife** ist das Gegenteil der **while-Schleife**: Sie läuft, bis eine Bedingung wahr wird.
 
==== Grundstruktur: ====
<code bash>
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

Schleifensteuerung

Bash bietet Befehle, um Schleifen zu kontrollieren:

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

Marcel Suter