Come faccio a sapere se un file regolare non esiste in Bash?
Ho usato il seguente script per vedere se esiste un file:
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
echo "File $FILE exists."
else
echo "File $FILE does not exist."
fi
Qual è la sintassi corretta da usare se voglio controllare solo se il file non esiste?
#!/bin/bash
FILE=$1
if [ $FILE does not exist ]; then
echo "File $FILE does not exist."
fi
3054
3
Il comando test (
[
qui) ha un operatore logico "not" che è il punto esclamativo (simile a molte altre lingue). Provate questo:Si può negare un'espressione con "!":
La relativa pagina man è
man test
o, equivalentemente,man [
-- ohelp test
ohelp [
per il comando built-in bash.Inoltre, è possibile che il file sia un link simbolico rotto, o un file non regolare, come ad esempio un socket, un dispositivo o un fifo. Ad esempio, per aggiungere un controllo per i link simbolici rotti: