Bash IF Conditions

Jaja schon wieder Bash :DIch vergesse einfach ständig die Syntax und aufschreiben ist das Einzige das ein bisschen hilft.
Mal „unter uns“: Bash ist auch eine der anstrengensten Skriptsprachen überhaupt …

Also diesmal geht es um IF Conditions. Grundsätzlich funtkioniert es wie folgt:

if [ <condition> ]then

elif [ <condition> ]
then

else

fi

Das allein finde ich schon unintuitiv: „elif“ statt „else if“ und then in einer neuen Zeile. Alternativ kann man auch „; then“ in der gleichen Zeile schreiben. Abgeschlossen wird das ganze mit „if“ rückwärts, also „fi“. Aufpassen, denn die Leerzeichen vor und nach den Klammern sind nicht optional!

Nun nun zu den Conditions:

  • [ -e filepath ] wird true wenn die Datei existiert.
  • [ -x filepath ] wird true wenn die Datei existiert und ausführbar ist.
  • [ -S filepath ] wird true wenn die Datei existiert und eine Socket-Datei ist.
  • [ -d filepath ] wird true wenn die Datei existiert und ein Verzeichnis ist.
  • [ -w filepath ] wird true wenn die Datei existiert und schreibbar ist.
  • [ expr1 -a expr2 ] entspricht dem logischen AND (Java: &&)
  • [ expr1 -o expr2 ] entspricht dem lofischen OR (Java: || )
  • [ -n $VARIABLE ] wird true wenn die Varable (also der String) nicht leer ist.
  • [ -z $VARIABLE ] wird true wenn die Varable (also der String) leer ist (Java: „foo“.isEmpty() ).
  • [ $VARIABLE = $VARIABLE2 ] wird true wenn die beiden Variablen gleich sind (Java: „foo“.equals(„foo“) ).
    ACHTUNG: Das funktioniert nur mit Strings und nicht mit Zahlen und ist Case-Sensitiv.
  • [ $VARIABLE -eq $VARIABLE2 ] wird true wenn die beiden Variablen die gleich Zahl enthalten (Java: == ).
  • [ $VARIABLE -lt $VARIABLE2 ] wird true wenn die 1. Variable kleiner ist (Java: < ).
  • [ $VARIABLE -gt $VARIABLE2 ] wird true wenn die 1. Variable größer ist (Java: > ).
  • [ $VARIABLE -le $VARIABLE2 ] wird true wenn die 1. Variable kleiner oder gleich ist (Java: <= ).
  • [ $VARIABLE -ge $VARIABLE2 ] wird true wenn die 1. Variable gößer oder gleich ist (Java: >= ).
  • [ $VARIABLE -ne $VARIABLE2 ] wird true wenn die beiden Variablen ungleich sind (Java: != ).
  • [ ! <condition> ] negiert die condition (Java: ! ).

Es gibt noch einige mehr, aber ich denke das sind die Wichtigsten.

Quellen:
http://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger
http://www.thegeekstuff.com/2010/06/bash-conditional-expression/

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.