Linux-Testbefehl

Testbefehl

Unter Unix-ähnlichen Betriebssystemen überprüft der Befehl test die Dateitypen und vergleicht die Werte.

Dieses Dokument behandelt die GNU / Linux-Testversion.


Beschreibung

test wird als Teil der bedingten Ausführung von Shell-Befehlen verwendet.

Der Test wird mit dem durch EXPRESSION festgelegten Status beendet. Das Platzieren des EXPRESSION zwischen eckigen Klammern ([und]) entspricht dem Testen des EXPRESSION mit test. Um den Beendigungsstatus an der Eingabeaufforderung anzuzeigen, geben Sie den Wert "$?" Ein Wert von 0 bedeutet, dass der Ausdruck als wahr bewertet wird, und ein Wert von 1 bedeutet, dass der Ausdruck als falsch bewertet wird.

Syntax

Test EXPRESSION
[ AUSDRUCK ]

Ausdrücke

Ausdrücke haben folgende Formen:

( AUSDRUCK ) Ausdruck ist wahr
! AUSDRUCK AUSDRUCK ist falsch
AUSDRUCK1 -a AUSDRUCK2 Sowohl EXPRESSION1 als auch EXPRESSION2 sind wahr
AUSDRUCK1 -o AUSDRUCK2 entweder EXPRESSION1 oder EXPRESSION2 ist wahr
-n STRING Die Länge von STRING ist ungleich Null
STRING äquivalent zu -n STRING
-z STRING Die Länge von STRING ist Null
STRING1 = STRING2 Die Saiten sind gleich
STRING1! = STRING2 Die Zeichenfolgen sind nicht gleich
INTEGER1 -eq INTEGER2 INTEGER1 ist gleich INTEGER2
INTEGER1 -ge INTEGER2 INTEGER1 ist größer oder gleich INTEGER2
INTEGER1 -gt INTEGER2 INTEGER1 ist größer als INTEGER2
INTEGER1 -le INTEGER2 INTEGER1 ist kleiner oder gleich INTEGER2
INTEGER1 -lt INTEGER2 INTEGER1 ist kleiner als INTEGER2
INTEGER1 -ne INTEGER2 INTEGER1 ist nicht gleich INTEGER2
DATEI1 -ef DATEI2 FILE1 und FILE2 haben die gleichen Geräte- und Inode-Nummern
DATEI1 -nt DATEI2 DATEI1 ist neuer (Änderungsdatum) als DATEI2
DATEI1 - nicht DATEI2 DATEI1 ist älter als DATEI2
-b DATEI DATEI existiert und ist Block Spezial
-c DATEI DATEI existiert und ist charakterspezifisch
-d DATEI DATEI existiert und ist ein Verzeichnis
-E-Datei Datei existiert
-f DATEI DATEI existiert und ist eine reguläre Datei
-g DATEI DATEI existiert und ist Set-Group-ID
-G DATEI DATEI existiert und gehört der effektiven Gruppen-ID
-h DATEI DATEI existiert und ist eine symbolische Verknüpfung (wie -L)
-k DATEI DATEI existiert und hat sein Sticky-Bit gesetzt
-L DATEI DATEI existiert und ist eine symbolische Verknüpfung (wie -h)
-O DATEI DATEI existiert und gehört der effektiven Benutzer-ID
-p DATEI DATEI existiert und ist eine Named Pipe
-r DATEI DATEI existiert und Leseberechtigung wird erteilt
-s DATEI DATEI existiert und hat eine Größe größer als Null
-S DATEI DATEI existiert und ist ein Socket
-t FD Der Dateideskriptor FD wird auf einem Terminal geöffnet
-u DATEI FILE existiert und sein Set-User-ID-Bit ist gesetzt
-w DATEI DATEI existiert und Schreibberechtigung wird erteilt
-x DATEI DATEI existiert und die Berechtigung zum Ausführen (oder Suchen) wird erteilt

Mit Ausnahme von -h und -L dereferenzieren alle DATEI-bezogenen Tests symbolische Links. Beachten Sie, dass für Muscheln Klammern (z. B. durch umgekehrte Schrägstriche) maskiert werden müssen. INTEGER kann auch -l STRING sein, was die Länge von STRING ergibt.

HINWEIS: Ihre Shell verfügt möglicherweise über eine eigene Testversion, die normalerweise die hier beschriebene Version ersetzt. Weitere Informationen zu den unterstützten Optionen finden Sie in der Dokumentation Ihrer Shell.


Beispiele

test 100 -gt 99 && echo "Ja, das stimmt." || Echo "Nein, das ist falsch."

Dieser Befehl gibt den Text "Ja, das stimmt" aus. weil 100 größer als 99 ist.

Test 100 -lt 99 && Echo "Ja." || Echo "Nein."

Dieser Befehl gibt den Text "Nein" aus. weil 100 nicht weniger als 99 ist.

["awesome" = "awesome"]; echo $?

Dieser Befehl gibt "0" aus, da der Ausdruck wahr ist. Die beiden Zeichenfolgen sind identisch.

[5-Gleichung 6]; echo $?

Dieser Befehl gibt "1" aus, da der Ausdruck falsch ist. 5 ist nicht gleich 6.

Schreibe einen Kommentar