So überprüfen Sie, ob ein Pfad ein Verzeichnis oder etwas anderes im Bash -Skript ist

So überprüfen Sie, ob ein Pfad ein Verzeichnis oder etwas anderes im Bash -Skript ist

Wir versuchen, ein sehr grundlegendes Ubuntu -Skript zu entwickeln, mit dem wir die Informationen bereitstellen können, sei es ein Dateiname oder vielleicht ein Ordner. Wie kann ich überprüfen, ob ein Ordner in einem Shell-Skript unter Linux oder Unix-ähnlichen virtuellen Maschinen vorhanden ist? Oder wie sehe ich, ob eine Datei existiert?? Wie unterscheidet ein Benutzer, wenn der erwähnte Pfad ein Verzeichnis oder eine Datei ist?? Lassen Sie uns also einige Beispiele in einem Bash -Skript haben, um dieses Konzept zu erläutern. Stellen Sie sich zunächst sicher, dass Sie sich von Ihrem System anmelden. Wir verwenden Ubuntu 20.04. Öffnen Sie nach der Anmeldung Ihre Konsolenanwendung, um Beispiele zu erstellen.

Beispiel 01:

Für die Öffnung der Schale versuchen Sie es “Strg+Alt+t”. Erstellen einer Bash -Datei zuerst beginnend mit einem einfachen Beispiel für die Überprüfung, ob der in einer Bash -Datei genannte Pfad eine Datei oder ein Verzeichnis ist. Um eine Bash -Code -Datei zu erstellen, geben Sie in das Terminal "Berührung" ein und erwähnen Sie den Namen einer Datei mit der ".Sch" Verlängerung. Also haben wir die Datei benannt “prüfen.Sch”. Auf den Schlüssel schlagen “Eingeben”Um die Abfrage zu bearbeiten.

$ Touch Test.Sch

Sie können die gerade geschaffene Bash-Datei im Heimverzeichnis leicht finden. Um ihm einen Bash -Code hinzuzufügen, müssen wir ihn in einem Herausgeber öffnen. Wir haben also einen integrierten GNU-Redakteur von Ubuntu 20 verwendet.04. Daher haben wir die darunter liegende Frage in einer Hülle ausprobiert und sie in einem Herausgeber geöffnet.

$ nano test.Sch

Die Datei wurde in einem Editor gestartet. Schreiben Sie das unten gezeigte Skript auf. Fügen Sie zunächst die Bash -Erweiterung in der Datei als „# hinzu!/bin/bash ”. Wir haben eine neue Variable "v1" deklariert und ihm einen "Pfad" einer Datei als Wert zugewiesen. Aus dem Pfad geht hervor, dass es einige Bash -Dateien anzeigt. Die Erklärung "If" wurde initialisiert. In den Klammern [] müssen wir die Flagge von „-d“ verwenden, die das Verzeichnis innerhalb seines Bedingungsteils darstellt. Es wird prüfen, ob der genannte Variablenwert ein Verzeichnis oder etwas anderes ist. Wenn sich die Bedingung erfüllt, wird das "dann" -Teil ausgeführt und angezeigt "$ v1 ist ein Verzeichnis". Andernfalls wird der else -Teil der Anweisung "if" ausgeführt und "$ v1 is eine Datei" am Shell -Terminal angezeigt. Die „FI“ gibt an, dass die Aussage „If“ hier beendet wurde. Nachdem wir diesen Bash -Code gespeichert haben, werden wir über die Konsole zurückkehrenStrg+s" Und "Strg+x”Nacheinander.

Jetzt ist es an der Zeit, die Bash -Datei „Test auszuführen“.Sch". Daher haben wir die Bash -Anweisung in unserer Konsole mit dem Namen der Datei verwendet, um die Ausgabe zu überprüfen. Die Ausgabe für diese Anweisung zeigt, dass der in der Datei genannte Pfad eine Datei angibt. Daher können wir sagen, dass der Teil „sonst“ seine Zeit ausgeführt worden sein muss.

$ Bash -Test.Sch

Beispiel 02:

Lassen Sie uns das Ergebnis für ein Verzeichnis diesmal sehen. Dieses Mal werden wir sehen, wie das Flag-„-d“ auf einer Variablen mit einem Pfad für ein Verzeichnis funktioniert. Also haben wir die Datei „Test geöffnet“ geöffnet.SH ”im Herausgeber über die" Nano "-Anfrage in der Shell erneut.

$ nano test.Sch

Nach dem Öffnen haben wir den Wert der variablen „v1“ aktualisiert und den Pfad in einen Verzeichnispfad geändert. Wir haben die Datei "Datei" ersetzt.sh "mit einem Verzeichnis" Bilder/". Das verbleibende Bash -Skript ist in der Datei in einem Editor gleich in der Datei gleich. Sie müssen einfach und schnell den aktualisierten Bash -Code speichern und den Editor mit "Strg+S" zuerst und dann mit "Strg+X" beenden.

Lassen Sie uns also unsere Datei erneut ausführen. Für die Ausführung wurde dieselbe oben in der Konsole verwendet. Diesmal zeigt die Ausführung, dass der erwähnte Pfad im Bash -Skript ein Verzeichnis innerhalb des Heimverzeichnisses von Ubuntu 20 ist.04.

$ Bash -Test.Sch

Beispiel 03:

In den beiden oben genannten Beispielen haben Sie gesehen. Dieses Mal werden wir in unserem Beispiel ein anderes Flag, "-f", in unserem Beispiel verwenden, um anzugeben, ob der erwähnte Pfad eine Datei ist oder nicht. Auf der anderen Seite werden wir in unserem Bash-Code eine verschachtelte Anweisung "If-ELSE" verwenden, um die Flags "-D" und "-f" zu verwenden. Wir haben den „Test“ geöffnet.SH ”-Datei im GNU -Editor über das Terminal über die Anweisung„ Nano “noch einmal.

$ nano test.Sch

Nach dem Öffnen des Bash-Dokument. Fügte die Bash -Erweiterung hinzu und initialisierte einen variablen v1, der einen Dateipfad als Wert enthält. Darüber hinaus wurde die verschachtelte Anweisung „IF-ELSE“ ordnungsgemäß verwendet, um zu prüfen, ob der Pfad einer Variablen eine Datei oder ein Verzeichnis ist. In der ersten Anweisung haben wir also eine Bedingung erwähnt, um zu prüfen, ob der Variablenwert ein Verzeichnis über das Flag „-d“ ist. Wenn sich die Bedingung erfüllt, druckt sie „$ v ist ein Verzeichnis“. Andernfalls wird der andere Teil einer Erklärung zusammengestellt. Innerhalb des Teils "sonst" wird eine weitere "If-ELSE" -Schürt angegeben. Innerhalb des Teils dieser Anweisung wurde mit der Bedingung überprüft, ob der variable Pfad „V“ eine Datei enthält oder nicht über das Flag „-F“. Wenn der Pfad eine Datei enthält, druckt er, dass „$ v eine Datei ist“. Andernfalls wird die Anweisung "else" -Teil echo am Terminal zusammengestellt.

Nachdem der Code gespeichert wurde, ist dies eine Zeit, um das Bash -Skript über eine Bash -Abfrage zu kompilieren. Daher haben wir die Abfrage „Bash“ mit dem darin genannten Dateinamen verwendet. Die Ausgabe ist genauso wie erwartet. Da der variable Wert den Pfad enthält, der den Dateipfad angibt, wird angezeigt, dass das "$ v eine Datei ist".

$ Bash -Test.Sch

Beispiel 04:

Im obigen Beispiel haben wir den Pfad für eine Datei verwendet, um zu sehen, wie die verschachtelte Anweisung "If-ELSE" reagiert, während die Flags "-D" und "-f" verwendet werden. Dieses Mal werden wir den Verzeichnispfad verwenden. Öffnen Sie die Datei erneut und aktualisieren Sie den variablen Pfadwert. Wir haben „Test ersetzt.txt "mit" Dokumenten/". Das verbleibende Skript ist das gleiche.

Nach erfolgreichem Kompilieren eines Bash -Skripts ist der deklarierte Pfad im variablen Wert „V“ ein Verzeichnis, e.G., Downloads.

$ Bash -Test.Sch

Beispiel 05:

Das letzte und Bonusbeispiel ist für zusätzliche Praxis. Öffnen Sie die neue Datei "Datei" Datei ".sh ”und füllen Sie es mit dem folgenden Code. Es wurden zwei Variablen deklariert, um die Datei- und Verzeichnispfad nacheinander anzuzeigen. Die Anweisungen „IF-ELSE“ wurden mit dem Flag „-D“ verwendet, um den Pfadtyp E anzugeben, e.G., Verzeichnis oder Datei.

Sobald der Code kompiliert wurde, enthält die erste Variable eine Datei und die zweite enthält ein Verzeichnis gemäß der folgenden Ausgabe.

$ bash -Datei.Sch

Abschluss:

In diesem Handbuch haben wir festgestellt, wie man feststellt, dass der genannte Pfad eine Datei, ein Verzeichnis oder etwas anderes ist. Wir haben in unseren Beispielen „if-else“ und verschachtelte "IF-ELSE" -Schüro.