case-Anweisung
Diese Anweisung erlaubt eine Mehrfachauswahl. Sie wird auch gerne deshalb verwendet,
weil sie Muster mit Jokerzeichen und mehrere Muster für eine Auswahl erlauben case selector in Muster-1) Kommandofolge 1 ;; Muster-2) Kommandofolge 2 ;; .... Muster-n) Kommandofolge n ;; esac
Die Variable selector (String) wird der Reihe nach mit den Mustern "Muster-1"
bis "Muster-n" verglichen. Bei Gleichheit wird die nachfolgende Kommandofolge
ausgeführt und dann nach der case-Anweisung (also hinter dem esac)
fortgefahren.
Beispiel 1: Automatische Bearbeitung von Quell- und Objekt-Dateien. Der Aufruf
erfolgt mit 'compile Datei'.
case $1 in
*.s) as $1 ;; # Assembler aufrufen
*.c) cc -c $1 ;; # C-Compiler aufrufen
*.o) cc $1 -o prog ;; # C-Compiler als Linker
*) echo "invalid parameter: $1";;
esac
Beispiel 2: Menü mit interaktiver Eingabe:
while : # Endlosschleife (s. später)
do
tput clear # Schirm löschen und Menütext ausgeben
echo " +---------------------------------+"
echo " | 0 --> Ende |"
echo " | 1 --> Datum und Uhrzeit |"
echo " | 2 --> aktuelles Verzeichnis |"
echo " | 3 --> Inhaltsverzeichnis |"
echo " | 4 --> Mail |"
echo "+----------------------------------+"
echo "Eingabe: \c" # kein Zeilenvorschub
read ANTW
case $ANTW in
0) kill -9 0 ;; # und tschuess
1) date ;;
2) pwd ;;
3) ls -CF ;;
4) elm ;;
*) echo "Falsche Eingabe!" ;;
esac
done
|