File Testing


Oft möchtest du einige Dateitests auf dem Dateisystem ausführen, auf dem du arbeitest. In diesem Fall bietet die Shell mehrere nützliche Befehle, um dies zu erreichen.

Der Befehl sieht wie folgt aus:

  • -<command> [filename]
  • [filename1] -<command> [filename2]

Wir stellen kurz einige gängige Befehle vor, die dir im Alltag begegnen könnten.

"-e" verwenden, um zu testen, ob eine Datei existiert

#!/bin/bash
filename="sample.md"
if [ -e "$filename" ]; then
    echo "$filename exists as a file"
fi

"-d" verwenden, um zu testen, ob ein Verzeichnis existiert

#!/bin/bash
directory_name="test_directory"
if [ -d "$directory_name" ]; then
    echo "$directory_name exists as a directory"
fi

"-r" verwenden, um zu testen, ob eine Datei eine Leseeberechtigung für den Benutzer hat, der das Skript ausführt

#!/bin/bash
filename="sample.md"
if [ ! -f "$filename" ]; then
    touch "$filename"
fi
if [ -r "$filename" ]; then
    echo "you are allowed to read $filename"
else
    echo "you are not allowed to read $filename"
fi

Weitere häufige Testflags sind -w (schreibbar), -x (ausführbar), -f (reguläre Datei) und -s (nicht leere Datei).

Exercise

filename wird unten als reguläre Datei erstellt. Korrigiere die Bedingung so, dass der -f-Test verwendet wird und die Datei nur dann gemeldet wird, wenn sie als reguläre Datei existiert.


Copyright © learnshell.org. Read our Terms of Use and Privacy Policy