Der Befehl test überprüft Dateien und vergleicht Werte. Vorallem bei Skripten verwendet, um zu testen, ob eine Datei vorhanden ist und ob sie den richtigen Typ hat.
Syntax
$ test <Datei>
$ test <Wert1> OPTION <Wert2>
- Nur test ohne Parameter oder Ausdrücke liefert immer den Wert FALSCH.
- Ein test ! ohne Parameter oder Ausdrücke liefert immer den Wert WAHR.
- Um herauszufinden, welcher Wert herauskommt, muss man echo $? eingeben. 0 ist wahr, 1 ist falsch.
- Vor und hinter dem Operator ein Leerzeichen, sonst wird es als ein Ausdruck wahrgenommen
$ test ; echo Der Errorlevel ist $?
Der Errorlevel ist 1
$ test ! ; echo Der Errorlevel ist $?
Der Errorlevel ist 0
Optionen
Zeichenkette
Option/Ausdruck |
Beschreibung |
Beispiel |
Errorlevel
|
ZEICHENKETTE |
Die Länge der ZEICHENKETTE ist nicht 0 |
test Beispiel |
0
|
-z ZEICHENKETTE |
Die Länge der Zeichenkette ist 0 |
test -z Beispiel |
1
|
ZEICHENKETTE1 = ZEICHENKETTE2 |
Die Zeichenketten sind identisch |
test Haha = Haha |
0
|
ZEICHENKETTE1 != ZEICHENKETTE2 |
Die Zeichenketten sind nicht identisch |
test Haha != Haha |
1
|
Zahlen
Option/Ausdruck |
Beschreibung |
Beispiel |
Errorlevel
|
ZAHL1 -eq ZAHL2 |
ZAHL1 ist gleich ZAHL2 |
test 5 -eq 5 |
0
|
ZAHL1 -ge ZAHL2 |
ZAHL1 ist größer als oder gleich ZAHL2 |
test 5 -ge 2 |
0
|
ZAHL1 -gt ZAHL2 |
ZAHL1 ist größer als ZAHL2 |
test 5 -gt 4 |
0
|
ZAHL1 -lt ZAHL2 |
ZAHL1 ist kleiner als ZAHL2 |
test 5 -lt 6 |
0
|
ZAHL1 -le ZAHL2 |
ZAHL1 ist kleiner als oder gleich ZAHL2 |
test 5 -le 7 |
0
|
ZAHL1 -ne ZAHL2 |
ZAHL1 ist nicht gleich ZAHL2 |
test 5 -ne 5 |
1
|
Achtung: test kann nur ganze Zahlen vergleichen.
Dateien
Option/Ausdruck |
Beschreibung
|
DATEI1 -ef DATEI2 |
Die Dateien haben dieselben Geräte- und Inode-Nummern
|
DATEI1 -nt/-ot DATEI2 |
Die Datei ist bzgl. seines Änderungsdatums neuer/älter als die andere Datei
|
-e |
Die Datei existiert
|
-f |
Die Datei existiert und ist eine normale Datei
|
-d |
Die Datei existiert und ist ein Verzeichnis
|
-b |
Die Datei existiert und ist eine blockorientierte Gerätedatei
|
-c |
Die Datei existiert und ist eine charakterorientierte Gerätedatei
|
-h |
Die Datei existiert und ist ein Softlink
|
-p |
Die Datei existiert und ist eine "Named" Pipe
|
-S |
Die Datei existiert und ist ein Socket (Achtung! Großes S verwenden! Siehe kleines s)
|
-r |
Die Datei existiert und ist lesbar
|
-w |
Die Datei existiert und ist schreibbar
|
-x |
Die Datei existiert und ist ausführbar
|
-s |
Die Datei existiert und hat eine Dateigröße größer als 0
|
-u |
Die Datei existiert und hat das "Set-UID"-Bit gesetzt
|
-g |
Die Datei existiert und hat das "Set-GID"-Bit gesetzt
|
-k |
Die Datei existiert und hat das "Sticky"-Bit gesetzt
|
Quelle