如何使用Bash创build一个文件夹,如果它不存在?

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

这似乎并不奏效。 谁能帮忙?

首先,在bash中,“[”只是一个命令,它需要string“]”作为最后一个参数,所以在括号前的空格(以及“!”和“-d”之间的空格需要是两个单独的参数)也很重要:

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

其次,由于您正在使用-p切换到mkdir ,所以此检查是无用的,因为这是首先要做的。 写吧:

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

这就是它。

实际上不需要检查它是否存在。 既然你已经想创build它,只要mkdir会做

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

简单地做:

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

如果文件夹已经存在,mkdir会抛出一个错误。 要忽略这些错误,请写下:

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

不需要做任何检查或类似的事情。

你需要在[]括号内的空格:

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

更清晰的方式,利用shell逻辑运算符的快捷方式评估。 只有在左侧为真的情况下才能执行运算符的右侧。

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

我想你应该重新格式化你的代码:

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