#!/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
我认为你应该重新格式化一下你的代码:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
首先,在Bash中[只是一个命令,需要字符串]作为最后一个参数,因此右括号前的空格(以及中间!)d也需要作为两个单独的参数)很重要:
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi
其次,由于您正在为mkdir使用-p switch,因此这种检查是无用的,因为这是它首先要做的事情。只写:
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如果存在没有错误,根据需要创建父目录http://man7.org/linux/man-pages/man1/mkdir.1.html
更简洁的方式,利用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