Comment utiliser Bash pour créer un dossier s’il n’existe pas déjà?

#!/bin/bash if [!-d /home/mlzboy/b2c2/shared/db]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi; 

Cela ne semble pas fonctionner. Quelqu’un peut-il aider?

Premièrement, dans bash “[” est juste une commande, qui attend ssortingng “]” comme dernier argument, donc les espaces avant le crochet de fermeture (ainsi qu’entre “!” Et “-d” qui doivent être deux arguments séparés) aussi) est important:

 if [ ! -d /home/mlzboy/b2c2/shared/db ]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi 

Deuxièmement, puisque vous utilisez l’option -p switch to mkdir , cette vérification est inutile, car c’est ce qui se passe en premier lieu. Ecrivez:

 mkdir -p /home/mlzboy/b2c2/shared/db; 

et c’est tout.

Il n’y a en fait pas besoin de vérifier si elle existe ou non. Puisque vous voulez déjà le créer s’il existe, mkdir fera l’affaire

 mkdir -p /home/mlzboy/b2c2/shared/db 

Simplement faire:

 mkdir /path/to/your/potentially/existing/folder 

mkdir générera une erreur si le dossier existe déjà. Pour ignorer les erreurs, écrivez:

 mkdir -p /path/to/your/potentially/existing/folder 

Pas besoin de faire une vérification ou quelque chose comme ça.

Vous avez besoin d’espaces entre les crochets [ et ] :

 #!/bin/bash if [ ! -d /home/mlzboy/b2c2/shared/db ] then mkdir -p /home/mlzboy/b2c2/shared/db fi 

De manière plus propre, exploitez l’évaluation des raccourcis des opérateurs logiques du shell. Le côté droit de l’opérateur est exécuté uniquement si le côté gauche est vrai.

 [ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db 

Je pense que vous devriez reformater votre code un peu:

 #!/bin/bash if [ ! -d /home/mlzboy/b2c2/shared/db ]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi;