Test
Erscheinungsbild
	
	
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
| 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 | 
| 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.
| 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
- Manpage von test