Linux:Befehl:test

Aus ITWiki
Zur Navigation springen Zur Suche springen

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.

1 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

2 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

3 Quelle

  • Manpage von test