#!/bin/bash if [!-d /home/mlzboy/b2c2/shared/db]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi;
这好像不管用,有人能帮忙吗?
[和]括号内需要空格:
[
]
#!/bin/bash if [ ! -d /home/mlzboy/b2c2/shared/db ] then mkdir -p /home/mlzboy/b2c2/shared/db fi
我认为你应该重新格式化一下你的代码:
#!/bin/bash if [ ! -d /home/mlzboy/b2c2/shared/db ]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi;
首先,在Bash中[只是一个命令,它期望字符串]作为最后一个参数,因此右括号前的空白(以及!和-d之间的空白,它们也需要是两个单独的参数)是重要的:
!
-d
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi
其次,由于你正在为mkdir使用-p开关,这个检查是无用的,因为这是它在第一个地方做。只写:
mkdir
-p
mkdir -p /home/mlzboy/b2c2/shared/db;
就是这样。
实际上不需要检查它是否存在。既然您已经想要在它存在的情况下创建它,那么mkdir就可以了
mkdir -p /home/mlzboy/b2c2/shared/db
只是做的事:
mkdir /path/to/your/potentially/existing/folder
如果文件夹已经存在,Mkdir将抛出一个错误。要忽略错误,请写:
mkdir -p /path/to/your/potentially/existing/folder
不需要做任何检查或类似的事情。
供参考:
-p, --parents no error if existing, make parent directories as needed http://man7.org/linux/man-pages/man1/mkdir.1.html
-p, --parents no error if existing, make parent directories as needed
更简洁的方式,利用shell逻辑运算符的快捷求值。只有left side为真时才执行运算符的右侧。
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db
在任何地方创建目录
OUTPUT_DIR =什么
if [ ! -d ${OUTPUT_DIR} ] then mkdir -p ${OUTPUT_DIR} fi