Bash if -e und -s und andere Dateitestbetreiber

Bash if -e und -s und andere Dateitestbetreiber
In Linux -Dateien werden Testbetreiber zum Überprüfen der Attribute verwendet, die einer Datei wie folgt: dem Autor der Datei, der Verwaltungsrechte und des Eigentums der Datei, und um zu überprüfen, ob sie symlink sind oder nicht. Wenn wir uns mit Dateien befassen, ist es notwendig, ihre Existenz zu überprüfen und ob sie Inhalte enthalten oder nicht zu diesem Zweck. oder wenn eine Anweisung zusammen mit den Testbetreibern verwendet wird.

Dateitestbetreiber in Bash werden auch verwendet, um die Dateien zu testen, wie der Name erläutert wird. Mit Hilfe dieser Bediener können wir verschiedene Aspekte einer Datei testen, wie wenn diese Datei nur beschreibbar ist oder nur lesbar ist. Es gibt viele Dateitestoperatoren und jeder spielt eine andere Rolle und Verwendung. Dateitestbetreiber helfen uns, Fehler beim Scripting in Bash zu verhindern. Um diese Aufgabe auszuführen, verwenden wir eine IF-ELSE-Anweisung. Die IF-ELSE-Anweisung fungiert als sehr nützliches Werkzeug für die Fehlerbehandlung im Bash-Skripting.

Der Zweck des „-e“ -Preibers besteht darin, uns mitzuteilen, ob eine Datei im angegebenen Verzeichnis vorliegt oder nicht. Der Bediener „-s“ teilt uns mit, dass die Datei keine Nullgröße ist, was bedeutet, dass dieser Bediener uns mitteilt, ob die Datei im angegebenen Verzeichnis Daten enthält oder nicht. Andere Bediener sind es gewohnt, mit Dateien umzugehen, aber die „-e“ und „-s“ sind die wichtigsten und werden häufig verwendet.

So verwenden Sie Testoperatoren:

In dieser Abbildung werden wir versuchen, alle Testbetreiber zu verwenden, um verschiedene Aufgaben in den Dateien auszuführen.

Beispiel Nr. 1: Verwenden Sie den iF -e -Text -Operator

In diesem Beispiel werden wir versuchen, den iF -e -Testoperator zu verwenden, der hauptsächlich verwendet wird, um zu überprüfen, ob die Datei in einem Verzeichnis vorliegt oder nicht. Jetzt werden wir zuerst eine neue Datei erstellen.

Linux@Linux-virtualBox: ~ $ Nano Testoperator.Sch

Wenn wir den obigen Befehl ausführen, wird die leere Datei jetzt geöffnet, in der wir den Code schreiben, in dem wir eine Bedingung erstellen, die die Datei „Mitarbeiter.txt ”existiert es zeigt den Befehl echo, der die Nachricht„ Datei existiert “enthält. Andernfalls wird die Meldung "Datei nicht existiert" ausgeführt. Der Datei -Testoperator enthält den unten genannten Inhalt.

#!/bin/sh
Datei = "Mitarbeiter.txt"
if [-e $ file]
Dann
Echo "Datei existiert"
anders
echo "Die Datei existiert nicht"
fi

Nach dem Speichern der Datei mit dem Befehl Bash werden wir den folgenden Befehl ausführen, mit dem der Testoperator ausgeführt wird.SH -Datei.

Linux@Linux-virtualBox: ~ $ Bash-Testoperator.Sch

Wenn wir den obigen Befehl ausführen, wird der Code der Testoperator -Datei ausgeführt, die ausgeführt wird, und prüft die Datei im Home -Verzeichnis. In diesem Fall haben wir keine Datei im Verzeichnis, sodass die folgende Ausgabe ausgeführt wurde.

Ausgang:

Die Datei existiert nicht

Jetzt werden wir zunächst eine neue Datei namens „Mitarbeiter erstellen.txt". Führen Sie dann den Befehl erneut aus, um zu überprüfen, ob die Datei erfasst oder nicht. Wie unten gezeigt, existiert diesmal die Datei im Heimverzeichnis.

Lassen Sie uns nun den obigen Befehl erneut ausführen. Dieses Mal wird die unten angezeigte Ausgabe angezeigt, in der die Meldung "Datei existiert" angezeigt wird.

Ausgang:

Datei existiert

Beispiel Nr. 2: Verwenden des IF -D -Textbetreibers

In diesem Beispiel werden wir einen anderen Testbetreiber versuchen, der der „-D“ -Preiber ist, der verwendet wird, um zu überprüfen, ob die von uns prüfende Datei ein Verzeichnis ist oder nicht. Diesmal werden wir ein neues Verzeichnis erstellen, das wir als „Mitarbeiter“ bezeichnet haben, wie im Snippet unten zu sehen ist.

Jetzt werden wir den „Testoperator“ ändern.SH ”-Datei, in der wir den Dateinamen" Mitarbeiter "ändern werden.txt ”nur" Mitarbeiter ". Geben Sie dann den "-D" -Preiber in der IF-Anweisung zusammen mit der "$ file" ab, die abgerufen wird. Und Ändern der Nachricht, die als Ausgabe angezeigt wird, speichern wir die Datei. Nun der „Testoperator.Die SH ”-Datei enthält den folgenden Inhalt.

#!/bin/sh
Datei = "Mitarbeiter"
if [-d $ file]
Dann
Echo "Der Mitarbeiter ist ein Verzeichnis"
anders
Echo "Der Mitarbeiter ist kein Verzeichnis"
fi

Nach dem Ändern des „Testoperators.SH ”, wir werden den Befehl Bash zusammen mit dem Dateinamen ausführen:

Linux@Linux-virtualBox: ~ $ Bash-Testoperator.Sch

Wenn der obige Befehl ausgeführt wird, wird die unten gezeigte Ausgabe angezeigt, in der er die Nachricht druckt, die lautet:

Ausgang:

Der Mitarbeiter ist ein Verzeichnis

Beispiel Nr. 3: Verwenden des IF -S -Textbetreibers

In diesem Beispiel werden wir versuchen, den „-S“ -Operator zu verwenden, mit dem prüft, ob die Datei Inhalte enthält oder nicht. Dafür werden wir die bereits erstellte Datei verwenden, die wir in Beispiel 1 mit dem Namen „Mitarbeiter verwendet haben.txt". Lassen Sie uns zunächst den Datei -Testoperator ändern.SH, in dem wir die Option "-s" zusammen mit dem Dateinamen an unsere IF-Anweisung übergeben und die Datei "Mitarbeiter zuweisen" zuweisen.txt". Außerdem wird die Nachricht geändert, die als Ausgabe angezeigt wird.

#!/bin/sh
Datei = "Mitarbeiter.txt"
if [-d $ file]
Dann
Echo "Angestellter.txt ist leer "
anders
Echo "Angestellter.txt ist nicht leer "
fi

Jetzt speichern und schließen wir die Datei „Testoperator.sh ”und führen Sie den unten genannten Befehl im Terminal aus.

Linux@Linux-virtualBox: ~ $ Bash-Testoperator.Sch

Wenn der obige Befehl ausgeführt wird, wird die elsee Anweisung wegen des Mitarbeiter ausgeführt.TXT enthält den Inhalt. Daher ignoriert es den Befehl der damaligen Anweisung Echo.

Ausgang:

Mitarbeiter.txt ist nicht leer

Jetzt werden wir den Inhalt aus dem „Mitarbeiter entfernen.txt ”und dann den Befehl erneut ausführen. Wenn der obige Befehl erneut ausgeführt wird. Das folgende Beispiel ist die Ausgabe des Befehls, den wir nach dem Löschen des Inhalts der Datei ausgeführt haben.

Ausgang:

Mitarbeiter.txt ist leer

Beispiel Nr. 4: Verwenden Sie den IF -r -Textbetreiber

In diesem Beispiel werden wir einen anderen Testbetreiber implementieren, der „-r“ ist. Dieser Bediener wird verwendet, um zu überprüfen, ob die Datei für den Benutzer lesbar ist oder nicht. Dafür werden wir den Testoperator ändern.TXT-Datei durch Ersetzen des "-d" -Preibers durch "-r" ersetzt. Es wird auch die Ausgabemeldung ändern, wenn die Datei lesbar ist. Es wird die Meldung „Mitarbeiter angezeigt.TXT ist lesbar und wenn die Datei nicht lesbar ist, wird die elsee Anweisung angezeigt. Nun der „Testoperator.txt ”enthält den folgenden Inhalt:

#!/bin/sh
Datei = ”Mitarbeiter.txt"
if [-r $ file]
Dann
Echo „Angestellter.txt ist lesbar “
anders
Echo „Angestellter.txt ist lesbar “
fi

Jetzt werden wir den folgenden Befehl ausführen, um den darin geschriebenen Code auszuführen.

Linux@Linux-virtualBox: ~ $ Bash-Testoperator.Sch

Nach dem Ausführen des obigen Befehls wird die angezeigte Ausgabe unten auf dem Terminal gedruckt.

Ausgang:

Mitarbeiter.txt ist lesbar

Abschluss

Wir haben den wichtigsten Teil des Anmeldesystems, die Testbetreiber, erörtert. Während der Arbeit mit Dateien sind die Testbetreiber das wichtigste Dienstprogramm, das von Linux -Paketen bereitgestellt wird. Nachdem wir den Zweck der Testbetreiber eingeführt haben, haben wir sie erläutert, indem wir diese Operatoren in verschiedenen Beispielen implementieren.