Manchmal möchten Sie bei der Arbeit an der Linux-Befehlszeile bestimmte Dinge testen, z. B. Ganzzahlwerte oder ob eine Datei einen bestimmten Typ hat oder nicht. Es wird Sie freuen zu hören, dass es ein integriertes Befehlszeilenprogramm test gibt damit können Sie die meisten dieser Vergleiche und Tests durchführen.
In diesem Tutorial werden wir die Grundlagen dieses Tools anhand einiger leicht verständlicher Beispiele erörtern. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in dem Artikel auf Ubuntu 16.04 LTS getestet wurden.
Linux-Testbefehl
Wie oben bereits erwähnt, dient der Testbefehl dazu, Prüfungen und Vergleiche durchzuführen. Hier ist die Syntax:
test EXPRESSION
Und hier ist, was die Manpage über dieses Dienstprogramm sagt:
test - check file types and compare values
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie das Tool funktioniert.
Hinweis :Denken Sie daran, dass einige der von Test bereitgestellten Befehlszeilenoptionen am nützlichsten sind, wenn sie in Shell-Skripten verwendet werden.
F1. Wie vergleiche ich zwei Strings?
Einfach, Sie müssen nur das Gleichheitszeichen (=) zwischen ihnen verwenden. Zum Beispiel:
test howto = forge
Ein besserer Weg wäre, so etwas zu schreiben:
test howto = forge && echo "same"
Wenn also die Zeichenketten gleich sind, sollte das Wort "gleich" in der Ausgabe ausgegeben werden, andernfalls sollte nichts ausgegeben werden.
In ähnlicher Weise können Sie die folgende Vorlage verwenden, wenn Sie auf Ungleichheit testen möchten.
STRING1 != STRING2
Q2. Wie vergleiche ich Ganzzahlen mit Test?
Dies ist auch sehr einfach - vergleichen Sie sie einfach mit '-eq'. Zum Beispiel:
test 5 -eq 7 && echo "same"
Hier ist ein Screenshot, der zeigt, wie diese Befehlszeilenoption funktioniert:
Ähnlich können Sie '-ge verwenden ', um größer oder gleich zu testen, '-gt ' für größer als, '-le ' für kleiner oder gleich, '-lt ' für kleiner als und '-ne ' für ungleich.
Q3. Wie teste/vergleiche ich Dateien mit test?
Um zu testen, welche der beiden Dateien neuer ist, verwenden Sie '-nt'. Zum Beispiel:
test file1 -nt file2
So habe ich es auf meinem System getestet:
Andere Dateivergleiche, die Sie durchführen können, beinhalten, welche der beiden Dateien älter ist (-ot) und ob zwei Dateien dieselben Geräte- und Inode-Nummern haben (-ef).
Um zu überprüfen, ob eine bestimmte Datei ein Verzeichnis ist, verwenden Sie die Option -d wie folgt:
test -d [Dateiname]
Zum Beispiel:
test -d neues_verzeichnis
Folgend sind einige andere Dateityp-Testoptionen, die der 'test'-Befehl bietet:
Q4. Wie behandelt der Testbefehl symbolische Links?
Der Testbefehl dereferenziert symbolische Links, obwohl es einige Ausnahmen gibt. Folgendes sagt die Manpage dazu:
Except for -h and -L, all FILE-related tests dereference symboliclinks.
Falls Sie es nicht wissen, überprüfen sowohl -h als auch -L, ob eine Datei existiert und ein symbolischer Link ist - also macht ihr Ausschluss Sinn, oder?
Schlussfolgerung
Der Testbefehl bietet viele Optionen, aber im Großen und Ganzen können Sie sie in 3-4 Kategorien einteilen. Wir haben Beispiele für jede Kategorie bereitgestellt. Probieren Sie diese aus, und wenn Sie fertig sind, besuchen Sie die Manpage des Dienstprogramms, um weitere Informationen zu erhalten.