4.2 Die else-Alternative für eine if-Verzweigung
 
Oft will man der if-Verzweigung noch eine Alternative anbieten. Das heißt, wenn die Überprüfung des Kommandos (oder auch der test-Aufruf) fehlgeschlagen ist, soll in einen anderen Codeabschnitt verzweigt werden. Hier die Syntax zur else-Verzweigung:
if Kommando_erfolgreich
then
# Ja, Kommando war erfolgreich
# ... hier Befehle für erfolgreiches Kommando verwenden
else
# Nein, Kommando war nicht erfolgreich
# ... hier die Befehle bei einer erfolglosen
# Kommandoausführung setzen
fi
Gegenüber der if-Verzweigung kommt hier ein alternatives else hinzu. War die Kommandoausführung erfolglos, geht es hinter else bis fi mit der Programmausführung weiter (siehe Abbildung 4.3).
Natürlich können Sie auch hier die unleserlichere Form der if-else-Verzweigung verwenden:
if Kommando_erfolgreich ; then befehl(e) ; else befehl(e) ; fi
Umgeschrieben auf das Beispiel »aif1« vom Anfang dieses Kapitels sieht das Script mit else folgendermaßen aus:
# Demonstriert eine alternative Verzweigung mit else
# Name: aelse
# Benutzer in /etc/passwd suchen ...
if grep "^$1" /etc/passwd > /dev/null
then
# grep erfolgreich
echo "User $1 ist bekannt auf dem System"
else
# grep erfolglos
echo "User $1 gibt es hier nicht"
fi
Siehe dazu auch Abbildung 4.4:
Gegenüber dem Script aif1 hat sich bei der Ausführung nicht viel geändert. Nur wenn grep erfolglos war, kann jetzt in die else-Alternative verzweigt werden und das Script muss nicht mehr mit exit beendet werden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.
|