Test: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 90: | Zeile 90: | ||
==Quelle== | ==Quelle== | ||
*Manpage von test | * Manpage von test | ||
[[Kategorie:Linux:Shell:Bash]] | [[Kategorie:Linux:Shell:Bash:Builtin]] | ||
[[Kategorie:Linux:Shell:Bash:Scripting]] |
Version vom 3. Februar 2022, 14:30 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
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