#!/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;
就是这样。
其他回答
在[和]括号内需要空格:
#!/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;
就是这样。
在任何地方创建目录
OUTPUT_DIR =什么
if [ ! -d ${OUTPUT_DIR} ]
then
mkdir -p ${OUTPUT_DIR}
fi
我认为你应该重新格式化一下你的代码:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
更简洁的方式,利用shell逻辑运算符的快捷求值。只有left side为真时才执行运算符的右侧。
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db