-d
è un operatore per verificare se la directory data esiste o meno.
Ad esempio, ho un'unica directory chiamata /home/sureshkumar/test/.
La variabile directory contiene "/home/sureshkumar/test/"
if [ -d $directory ]
Questa condizione è vera solo quando la directory esiste. Nel nostro esempio, la directory esiste quindi questa condizione è vera.
Sto cambiando la variabile della directory in "/home/a/b/".Questa directory non esiste.
if [ -d $directory ]
Ora questa condizione è falsa. Se metto il !
davanti se la directory non esiste, la condizione if è vera. Se la directory esiste allora if [ ! -d $directory ]
la condizione è falsa.
Il funzionamento del! operatore è se la condizione è vera, allora dice che la condizione è falsa. Se la condizione è falsa allora dice che la condizione è vera. Questo è il lavoro di ! operatore.
if [ ! -d $directory ]
Questa condizione è vera solo se la $directory non esiste. Se la directory esiste, restituisce false.
Le parentesi sono l'eseguibile del test, il punto esclamativo è una negazione e il -d
opzione controlla se la variabile $directory
è una directory.
Dal test uomo:
-d FILE
FILE exists and is a directory
! EXPRESSION
EXPRESSION is false
Il risultato è un'istruzione if che dice "if $directory
non è una directory"