#!/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;

其他回答

更简洁的方式,利用shell逻辑运算符的快捷求值。只有left side为真时才执行运算符的右侧。

[ ! -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

实际上不需要检查它是否存在。既然您已经想要在它存在的情况下创建它,那么mkdir就可以了

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;