Bash überprüfen, ob die Datei nicht vorhanden ist

Bash überprüfen, ob die Datei nicht vorhanden ist
Bash Scripting ist eine Programmiersprache, die schnell unter Linux- und anderen Betriebssystemumgebungen verwendet werden kann, um Ihre Aufgaben zu automatisieren. Beim häufigsten Schreiben von Bash -Skripten müssen wir im Dateisystem auf Dateien arbeiten. Wenn unser Code jedoch versucht, auf eine Datei zuzugreifen und nicht vorhanden ist, können wir einen unerwarteten Fehler erhalten. Daher ist es die beste Praxis, nach Dateien zu existieren, bevor Sie versuchen, die Datei in einem Bash -Skript zu verweisen.

Beispiel 01

Wir müssen die Bash -Unterstützung darin hinzufügen '#!/bin/bash '. Danach haben wir a initialisiert 'DATEI' Variable mit dem Pfad zur Datei selbst 'Datei.Sch' ich.e., '/home/LinuxHint/Datei.Sch'. Um nach der Datei zu überprüfen oder nicht, werden wir die verwenden 'Wenn, dann' Erklärung, die in diesem Bash -Code seine Bedingungen in den einzelnen Quadratklammern beziehen. Um zu überprüfen, ob die Datei existiert, müssen wir die verwenden '-F' Option, gefolgt von der doppelt zitierten Variablen "DATEI" mit dem Dollarcharakter "$". In diesem Fall wird überprüfen, ob der angegebene Pfad zur Datei eine Datei mit dem Namen enthält 'Datei.Sch' oder nicht.

Der Zustand endet hier und die 'Dann' Ein Teil der Aussage beginnt. Wenn die Datei vorliegt, wird die Nachricht angezeigt, dass die Datei 'Datei.Sch' existiert im angegebenen Pfad mit dem 'Echo' Stellungnahme. Der 'Wenn' Die Anweisung endet hier mit der Endsyntax 'fi'.

#!/Bin/Bash
Datei =/Home/LinuxHint/Datei.Sch
wenn [-f "$ file"]; Dann
echo "$ file existiert!"
fi

Speichern Sie nun Ihre Bash -Code -Datei und führen Sie die Datei mit der folgenden Befehlszeile aus:

Bash -Datei.Sch

Hier ist die Ausgabe beim Ausführen des Befehls:

LinuxHint@U22: ~ $ Bash -Datei.Sch
/Home/LinuxHint/Datei.SH existiert!

Wenn wir das Skript optimieren und das ändern 'DATEI' zu einer Datei, die nicht existiert und das Skript erneut ausführt, erhalten wir keine Ausgabe aus dem Skript.

Beispiel 02

In diesem Beispiel fügen wir der IF -Anweisung im vorherigen Beispiel eine weitere Anweisung hinzu. Auf diese Weise erhalten wir, wenn die Datei nicht vorhanden ist. Hier ist der neue Code:

#!/Bin/Bash
Datei =/Home/LinuxHint/Datei.Sch
wenn [-f "$ file"]; Dann
echo "$ file existiert!"
anders
Echo "$ Datei existiert nicht!"
fi

Wir können die Skripte wie folgt ausführen:

$ bash -Datei.Sch

Wir erhalten die gleiche Ausgabe wie zuvor:

LinuxHint@U22: ~ $ Bash -Datei.Sch
/Home/LinuxHint/Datei.SH existiert!

Wenn wir jetzt den Dateinamen als eine Datei hacken, die nicht vorhanden ist, erhalten wir eine ordnungsgemäße Fehlermeldung:

LinuxHint@U22: ~ $ Bash -Datei.Sch
/Home/LinuxHint/NoFile.SH existiert nicht!

Beispiel 03

Sagen wir, Sie möchten die verwenden 'nicht' Zeichen, sodass Sie zuerst überprüft werden, ob die Datei nicht vorhanden ist. Wenn beispielsweise die Datei nicht vorhanden ist Fehler.

Hier ist die Syntax, um die zu verwenden ''!'' Charakter, um die Überprüfung der Überprüfung umzukehren Wenn die Datei nicht existiert:

#!/Bin/Bash
Datei =/home/linuxHint/noFile.Sch
Wenn [ ! -f "$ file"]; Dann
Echo "$ Datei existiert nicht!"
anders
echo "$ file existiert!"
fi

Wir werden das Skript zuerst mit dem gebrochenen Dateinamen ausführen:

$ bash -Datei.Sch

Die Ausgabe beim Auslösen der Fehlerbedingung ist hier unten:

LinuxHint@U22: ~ $ Bash -Datei.Sch
/Home/LinuxHint/NoFile.SH existiert nicht!

Jetzt können wir den Dateinamen als die vorhandene Datei beheben:

#!/Bin/Bash
Datei =/Home/LinuxHint/Datei.Sch
Wenn [ ! -f "$ file"]; Dann
Echo "$ Datei existiert nicht!"
anders
echo "$ file existiert!"
fi

Hier ist die Ausgabe mit der vorhandenen Datei:

LinuxHint@U22: ~ $ Bash -Datei.Sch
/Home/LinuxHint/Datei.SH existiert!
LinuxHint@u22: ~ $

Beispiel 04

In diesem Beispiel werden wir eine schnelle Syntax aus der Shell zeigen, ohne ein Skript zu schreiben, und logische Operatoren vorstellen, um Erfolg oder Fehler zu drucken. Hier ist das Skript, das Sie auf dem Terminal ausführen können:

LinuxHint@U22: ~ $ [-f -Datei.sh] && echo "Datei existiert" || echo "Datei existiert nicht"
Datei existiert
LinuxHint@u22: ~ $

Im obigen Code schreiben wir den Code direkt in das interaktive Terminal. Wir verwenden einen bedingten Test zur Überprüfung, ob die Datei vorliegt. Es wird 0 für den Erfolg zurückkehren. Logisch oder logisch und die Bediener werden verwendet, um anzugeben, welche Nachricht gedruckt werden sollte, Erfolg oder Misserfolg.

Beispiel 05

Sie können auch einen ähnlichen Ansatz verwenden, wie in diesem Artikel gezeigt '-D' Option in ihrem Zustand statt in '-F'. Sagen wir, wir haben ein Verzeichnis 'prüfen' in unserem Heimatordner und wir haben dasselbe Skript mit dem verwendet '-D' Option zum Überprüfen und der Zeichenfolge gemäß der Bedingungsausgabe anzeigen.

Hier ist der Code mit der Überprüfung des Verzeichnisses in Datei 'Dir.Sch':

#!/Bin/Bash
Datei =/Home/LinuxHint/Test
wenn [-d "$ file"]; Dann
Echo "Verzeichnis $ Datei existiert!"
anders
Echo "Verzeichnis $ Datei existiert nicht!"
fi

So führen Sie den Code aus:

$ Bash Dir.Sch
LinuxHint@u22: ~ $ Bash Dir.Sch
Verzeichnis/Home/LinuxHint/Test existiert!

Und den negativen Testcode und die Ausgabe:

#!/Bin/Bash
Datei =/Home/LinuxHint/Test
Wenn [ ! -d "$ file"]; Dann
Echo "Verzeichnis $ Datei existiert nicht!"
anders
Echo "Verzeichnis $ Datei existiert!"
fi
LinuxHint@u22: ~ $ Bash Dir.Sch
Verzeichnis/Home/LinuxHint/Test existiert nicht!

Abschluss

Hier geht es um die Verwendung von Bash -Skripten, um zu überprüfen, ob Dateien und Verzeichnisse vorhanden sind. Außerdem haben wir den direkten Code in der Bash -Konsole mit Testvorgängen und logischen Operatoren verwendet.