if
Der Shell-Befehl if ist eine Verzweigung zur Erzeugung einer bedingten Abfrage.
Syntax
Folgende allgemeine bedingte Verzweigung führt Befehlsfolge1 aus. Ist der Exit-Status des letzten Befehls von Befehlsfolge1 eine 0, dann wird der "then"-Teil ausgeführt. Andernfalls wertet die Shell eine allfällig folgende und mit "elif" eingeleitete Befehlsfolge2 aus. Der zugehörige "then"-Teil wird ebenfalls nur ausgewertet, falls Befehlsfolge2 den Exit-Status 0 liefert. Steht am Ende der Sequenz eine "else"-Anweisung, dann wird Befehlsliste3 ausgeführt, falls keine der zuvor durchgeführten Abfragen zutrifft.
Grundsyntax | Gleichwertige Verschachtelungen | |
---|---|---|
if Befehlsfolge1 then Befehlsliste1 [elif Befehlsfolge2 then Befehlsliste2] [else Befehlsliste3] fi |
if Befehlsfolge1 then Befehlsliste1 else if Befehlsfolge2 then Befehlsliste2 fi fi |
if Befehlsfolge1 then Befehlsliste1 elif Befehlsfolge2 then Befehlsliste2 fi "elif" benötigt kein abschliessendes "fi". |
Verwendung
Wenn die Datei "/etc/passwd" vorhanden ist, werden die Anzahl Zeilen in der Datei gezählt.
# if ls /etc/passwd; then wc -l /etc/passwd; fi
#!/bin/sh if [ "$SHELL" = "/bin/bash" ]; then echo "your login shell is the bash (bourne again shell)" else echo "your login shell is not bash but $SHELL" fi
#!/bin/sh if [ "$ZEICHEN" = "A" ] || [ "$ZEICHEN" = "B" ]; then echo "Das Zeichen $ZEICHEN ist ein A oder ein B" else echo "Das Zeichen $ZEICHEN ist kein A und kein B" fi
#!/bin/sh if test -f /etc/password then more /etc/password else echo "/etc/password ist keine Datei" exit fi
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Bedingte Anweisung und Verzweigungwbm | Enzyklopädischer Artikel |