LU06a - Einführung in Selektionen in Bash

Shell Prog: Kapitel 4.1 - 4.3

Selektionen (auch Kontrollstrukturen genannt) ermöglichen es, in Bash-Skripten Entscheidungen zu treffen und den Programmfluss basierend auf Bedingungen zu steuern. Die beiden häufigsten Mechanismen dafür sind `if`-Bedingungen und `case`-Anweisungen.

`if`-Bedingungen

Die `if`-Anweisung wird verwendet, um Code auszuführen, wenn eine Bedingung wahr ist.

Grundstruktur

if [ Bedingung ]; then
    # Befehle, falls Bedingung wahr ist
elif [ andere Bedingung ]; then
    # Befehle, falls andere Bedingung wahr ist
else
    # Befehle, falls keine Bedingung wahr ist
fi

Beispiel:

#!/bin/bash
zahl=10
 
if [ $zahl -gt 5 ]; then
    echo "Die Zahl ist größer als 5"
elif [ $zahl -eq 5 ]; then
    echo "Die Zahl ist genau 5"
else
    echo "Die Zahl ist kleiner als 5"
fi

Wichtige Operatoren:

`case`-Anweisungen

Die `case`-Anweisung ist nützlich, wenn Sie mehrere Bedingungen basierend auf einem einzigen Wert prüfen möchten.

Grundstruktur

case Variable in
    Muster1)
        # Befehle für Muster1
        ;;
    Muster2)
        # Befehle für Muster2
        ;;
    *)
        # Standardfall (wenn nichts passt)
        ;;
esac

Beispiel:

#!/bin/bash
farbe="blau"
 
case $farbe in
    "rot")
        echo "Die Farbe ist rot"
        ;;
    "blau")
        echo "Die Farbe ist blau"
        ;;
    *)
        echo "Unbekannte Farbe"
        ;;
esac

Vergleich von `if` und `case`

`if`-Bedingungen `case`-Anweisungen
Nützlichkeit Für numerische oder logische Vergleiche Für Mustervergleiche
Lesbarkeit Schwer lesbar bei vielen Bedingungen Einfach bei vielen Optionen

Logische Operatoren in Selektionen

Bedingungen können kombiniert werden mit:

Beispiel:

#!/bin/bash
zahl=10
 
if [ $zahl -gt 5 ] && [ $zahl -lt 20 ]; then
    echo "Die Zahl liegt zwischen 5 und 20"
else
    echo "Die Zahl liegt außerhalb des Bereichs"
fi

Zusammenfassung


Marcel Suter