Hier soll an einigen Beispielen klar werden, wie man Bedingungen in z.B. Shell-Abfragen (if) einbaut.
Dateien:
-d file
-> file existiert und ist ein Verzeichnis
-e file
-> file existiert
-f file
-> file existiert und ist regulär
Beispiel:
if [ -f /etc/issue ] ; then cat /etc/issue | awk {'print $3'}; fi
-s file
-> file existiert und ist nicht leer
-r file
-> file existiert und ist lesbar
-w file
-> file existiert und ist beschreibbar
datei1 -nt datei2
-> datei1 ist jünger als datei2
datei1 -ot datei2
-> datei1 ist älter als datei2
Strings:
-z string
-> string ist leer
-n string
-> string ist nicht leer
Beispiel:
test="Hallo"
if [ -n $test ] ; then echo $test; fi
unset test
if [ -n $test ] ; then echo $test; fi
s1 == s2
-> s1 ist gleich s2
s1 != s2
-> s1 ist ungleich s2
s1 < s2
-> s1 ist kleiner s2 (bzgl. Sortierung)
s1 > s2
-> s1 ist größer s2
Arithmetik:
n1 -eq n2
-> n1 ist gleich n2
Beispiel:
a=5
b=5
if [ $a -eq $b ] ; then echo -e "es sind die gleichen Zahlen"; else echo "es sind nicht die gleichen Zahlen" ;fi
b=4
if [ $a -eq $b ] ; then echo -e "es sind die gleichen Zahlen"; else echo "es sind nicht die gleichen Zahlen" ;fi
n1 -ne n2
-> n1 ist ungleich n2
n1 -lt n2
-> n1 ist kleiner n2
n1 -le n2
-> n1 ist kleiner/gleich n2
n1 -gt n2
-> n1 ist größer n2
n1 -ge n2
-> n1 ist größer/gleich n2
Logik:
expr1 -a expr2
-> Ausdruck expr1 UND expr2
expr1 -o expr2
-> Ausdruck expr1 ODER expr2