Prüfen der Dateiexistenz mit dem test-Befehl
In diesem Schritt lernen Sie, wie Sie in Linux mit dem test
-Befehl prüfen können, ob eine Datei existiert. Der test
-Befehl ist ein integrierter Shell-Befehl, der bedingte Ausdrücke auswertet. Er wird oft in Shell-Skripten verwendet, um Entscheidungen auf der Grundlage der Existenz oder Eigenschaften von Dateien und Verzeichnissen zu treffen.
Zunächst erstellen wir eine einfache Datei in Ihrem aktuellen Verzeichnis (~/project
). Wir verwenden den echo
-Befehl, um etwas Text in eine Datei namens my_file.txt
zu schreiben.
Geben Sie den folgenden Befehl ein und drücken Sie Enter:
echo "This is a test file." > my_file.txt
Dieser Befehl erstellt eine Datei namens my_file.txt
in Ihrem aktuellen Verzeichnis (~/project
) und schreibt den Text "This is a test file." hinein. Das >
-Symbol leitet die Ausgabe des echo
-Befehls in die angegebene Datei um.
Jetzt verwenden wir den test
-Befehl, um zu prüfen, ob my_file.txt
existiert. Die -f
-Option bei test
prüft, ob eine Datei existiert und eine reguläre Datei ist.
Geben Sie den folgenden Befehl ein und drücken Sie Enter:
test -f my_file.txt
Der test
-Befehl gibt keine Ausgabe zurück, wenn die Bedingung wahr ist (die Datei existiert). Wenn die Datei nicht existierte, würde er einen nicht-null Exit-Status zurückgeben, der in Skripten üblicherweise verwendet wird.
Um das Ergebnis des test
-Befehls zu sehen, können Sie den Exit-Status des vorherigen Befehls mit echo $?
prüfen. Ein Exit-Status von 0
bedeutet, dass der Befehl erfolgreich war (die Bedingung war wahr), und ein nicht-null Exit-Status bedeutet, dass er fehlgeschlagen ist (die Bedingung war falsch).
Geben Sie den folgenden Befehl ein und drücken Sie Enter:
echo $?
Sie sollten die Ausgabe 0
sehen, was darauf hinweist, dass der Befehl test -f my_file.txt
erfolgreich war, da die Datei existiert.
Jetzt versuchen wir, nach einer Datei zu suchen, die nicht existiert, wie non_existent_file.txt
.
Geben Sie den folgenden Befehl ein und drücken Sie Enter:
test -f non_existent_file.txt
Wiederum gibt test
keine Ausgabe zurück, wenn die Bedingung falsch ist. Prüfen wir den Exit-Status:
echo $?
Diesmal sollten Sie eine Ausgabe von 1
(oder eine andere nicht-null Zahl) sehen, was darauf hinweist, dass der Befehl test -f non_existent_file.txt
fehlgeschlagen ist, da die Datei nicht existiert.
Das Verständnis des test
-Befehls und das Prüfen von Exit-Statuswerten ist grundlegend für das Schreiben von Shell-Skripten, die Entscheidungen auf der Grundlage des Dateisystems treffen können.
Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.