Test: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 92: Zeile 92:
*Manpage von test
*Manpage von test


[[Category: Linux:Bash]]
[[Kategorie:Linux:Shell:Bash]]

Version vom 3. Februar 2022, 13:46 Uhr

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

  • Manpage von test