Во-первых, в bash "[" это просто команда, которая ожидает строку "]" в качестве последнего аргумента, поэтому пробел перед закрывающей скобкой (а также между "!" И "-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;
и это все.