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.
Die `if`-Anweisung wird verwendet, um Code auszuführen, wenn eine Bedingung wahr ist.
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:
Die `case`-Anweisung ist nützlich, wenn Sie mehrere Bedingungen basierend auf einem einzigen Wert prüfen möchten.
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
`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 |
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