Wenn Sie mit Bash- und Shell-Skripten arbeiten, müssen Sie möglicherweise überprüfen, ob ein Verzeichnis oder ein Verzeichnis vorhanden ist Datei ist in Ihrem Dateisystem vorhanden oder nicht.
Basierend auf dieser Bedingung können Sie das Skript beenden oder beispielsweise eine Warnmeldung für den Endbenutzer anzeigen.
Um zu überprüfen, ob a Wenn eine Datei oder ein Verzeichnis mit Bash vorhanden ist, verwenden Sie „Bash-Tests“.
In diesem Lernprogramm erfahren Sie, wie Sie überprüfen, ob eine Datei oder ein Verzeichnis in einem Bash-Skript vorhanden ist.
Inhaltsverzeichnis
Überprüfen Sie, ob eine Datei vorhanden ist
Um zu überprüfen, ob eine Datei in Bash vorhanden ist Sie müssen die Option „-f“ (für Datei) verwenden und die Datei angeben, die Sie überprüfen möchten.
Nehmen wir das zum Beispiel an Sie möchten überprüfen, ob die Datei „/ etc / passwd“ in Ihrem Dateisystem vorhanden ist oder nicht.
In einem Skript würden Sie Folgendes schreiben, wenn Anweisung.
Überprüfen Sie die Dateiexistenz mit kürzeren Formularen
In einigen Fällen möchten Sie möglicherweise überprüfen, ob eine Datei direkt in Ihrer Bash-Shell vorhanden ist oder nicht.
Um zu überprüfen, ob eine Datei in Bash mit kürzeren Formularen vorhanden ist, geben Sie die Option „-f“ in Klammern an und fügen Sie den Befehl hinzu, den Sie ausführen möchten, wenn er erfolgreich ist.
Wenn Sie anhand des zuvor verwendeten Beispiels überprüfen möchten, ob die Datei „/ etc / passwd“ mit kürzeren Formularen vorhanden ist, schreiben Sie den folgenden Befehl:
Wie funktioniert dieser Befehl?
Kürzere Formulare hängen eng mit dem Beendigungsstatus zusammen.
Wenn Sie einen Befehl in Bash ausführen, wird er immer mit dem Fehlerstatus 0 beendet für Fehler und Zahlen größer als 0 für Fehler (1, 2 .. 6 usw.)
In diesem Fall prüft die Syntax „& &“, ob der Exit-Status des Befehls auf der linken Seite lautet gleich Null: Wenn dies der Fall ist, wird der Befehl auf der rechten Seite ausgeführt, andernfalls wird er nicht ausgeführt.
Protip: Sie können Verwenden Sie „echo $ {?}“, um den Beendigungsstatus des letzten ausgeführten Befehls anzuzeigen.
Überprüfen mehrerer Dateien
In In einigen Fällen möchten Sie möglicherweise überprüfen, ob mehrere Dateien in Ihrem Dateisystem vorhanden sind oder nicht.
Um zu überprüfen, ob mehrere Dateien in Bash vorhanden sind, verwenden Sie das Flag „-f“ und geben Sie die zu überprüfenden Dateien an getrennt durch den Operator „& &“.
Überprüfen, ob eine Datei nicht vorhanden ist
Andererseits möchten Sie möglicherweise überprüfen, ob in Ihrem Dateisystem keine Datei vorhanden ist.
Um zu überprüfen, ob eine Datei nicht vorhanden ist Mit Bash müssen Sie das „!“ Symbol gefolgt von der Option „-f“ und der Datei, die Sie überprüfen möchten.
Ebenso können Sie kürzere Formulare verwenden, wenn Sie schnell überprüfen möchten Wenn eine Datei nicht direkt in Ihrem Terminal vorhanden ist.
Beachten Sie, dass mit „||“ auch überprüft werden kann, ob eine Datei nicht vorhanden ist. Operator.
ichtung Das „||“ Der Bediener führt den Befehl auf der rechten Seite genau dann aus, wenn der Befehl auf der linken Seite fehlschlägt (d. h. mit einem Status größer als Null beendet wird).
Um zu testen, ob eine Datei nicht vorhanden ist, verwenden Sie „||“. Überprüfen Sie einfach mit dem Flag „-f“, ob es vorhanden ist, und geben Sie den Befehl an, der ausgeführt werden soll, wenn er fehlschlägt.
Überprüfen Sie, ob ein Verzeichnis vorhanden ist
Um zu überprüfen, ob in Bash ein Verzeichnis vorhanden ist, müssen Sie die Option „-d“ verwenden und den zu überprüfenden Verzeichnisnamen angeben.
Angenommen, Sie möchten mit Bash überprüfen, ob das Verzeichnis / etc auf Ihrem System vorhanden ist.
Um seine Existenz zu überprüfen, schreiben Sie das folgende Bash-Skript
Wenn Sie dieses Skript ausführen, erhalten Sie die folgende Ausgabe
Überprüfen Sie die Verzeichnisexistenz mit kürzere Formulare
In einigen Fällen möchten Sie möglicherweise überprüfen, ob ein Verzeichnis direkt in Ihrer Bash-Shell vorhanden ist oder nicht.
Um zu überprüfen, ob ein Verzeichnis in Bash vorhanden ist, verwenden Sie kürzere Formulare Geben Sie in Formularen die Option „-d“ in Klammern an und hängen Sie den Befehl an, den Sie ausführen möchten, wenn er erfolgreich ist.
Angenommen, Sie möchten beispielsweise überprüfen, ob das Verzeichnis“ / etc „vorhanden ist.
ichtung Mit der kürzeren Syntax würden Sie den folgenden Befehl schreiben.
Erstellen eines vollständigen Bash-Skripts
Wenn Sie mehrmals täglich überprüfen, ob eine Datei (oder mehrere) in Ihrem Dateisystem vorhanden ist oder nicht, ist dies möglicherweise der Fall Es ist praktisch, ein Skript zu haben, das diese Aufgabe automatisieren kann.
In diesem Abschnitt erstellen Sie ein Bash-Skript, das mehrere Dateinamen annehmen und zurückgeben kann, ob sie vorhanden sind oder nicht.
Wenn dies nicht der Fall ist, wird in der Standardausgabe eine einfache Benachrichtigung angezeigt.
Erstellen Sie ein neues Bash-Skript und machen Sie es mit chmod ausführbar.
Hier ist der Inhalt des Skripts, mit dem dynamisch überprüft werden kann, ob Dateien vorhanden sind.
Speichern Sie Ihr Skript und fügen Sie den soeben erstellten Ordner „bin“ zu Ihrer Umgebungsvariablen PATH hinzu.
Jetzt, da Ihr Skript überall auf dem System verfügbar ist, können Sie Ihr Skript aufrufen und die Überprüfung starten ob Dateien vorhanden sind oder nicht.
Super!
Sie haben eine benutzerdefinierte Datei erstellt, um zu überprüfen, ob Dateien in Ihrem Dateisystem vorhanden sind oder nicht.
Fazit
In diesem Lernprogramm haben Sie gelernt, wie Sie mithilfe von Bash-Tests und Bash-Kurzsyntax überprüfen können, ob eine Datei vorhanden ist oder nicht.
Ebenso haben Sie gelernt Wie kann überprüft werden, ob ein Verzeichnis vorhanden ist?
Schließlich haben Sie ein vollständiges Bash-Skript geschrieben, das dynamische Argumente akzeptiert, um zu überprüfen, ob mehrere Dateien vorhanden sind oder nicht.
Wenn Wenn Sie sich für die Bash-Programmierung oder die Linux-Systemadministration interessieren, haben wir auf der Website einen vollständigen Abschnitt dazu.