Wie kann ich feststellen, ob eine reguläre Datei in der Bash nicht existiert?
Ich habe das folgende Skript verwendet, um zu sehen, ob eine Datei existiert:
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
echo "File $FILE exists."
else
echo "File $FILE does not exist."
fi
Was ist die richtige Syntax, wenn ich nur prüfen will, ob die Datei nicht existiert?
#!/bin/bash
FILE=$1
if [ $FILE does not exist ]; then
echo "File $FILE does not exist."
fi
3054
3
Der Befehl test (hier
[
) hat einen logischen Operator "not", der ein Ausrufezeichen ist (ähnlich wie in vielen anderen Sprachen). Versuchen Sie dies:Sie können einen Ausdruck mit "!" negieren:
Die entsprechende Manpage ist
man test
oder, äquivalent,man [
-- oderhelp test
oderhelp [
für den eingebauten Bash-Befehl.Es ist auch möglich, dass die Datei ein defekter symbolischer Link oder eine nicht-reguläre Datei ist, wie z.B. ein Socket, Gerät oder Fifo. Zum Beispiel, um eine Prüfung auf defekte Symlinks hinzuzufügen: