Bedingungen in der Shell – Linux

This blog post has been published on 2010-01-31 and may be out of date.

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

Published by

voku

Lars Moelleken | Ich bin root, ich darf das!

%d bloggers like this: