#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
    mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
这似乎不起作用.有人可以帮忙吗?
Max*_*yko 264
首先,在bash中,"["只是一个命令,它要求字符串"]"作为最后一个参数,所以在结束括号之前的空格(以及"!"和"-d"之间的空格需要两个独立的参数太重要了):
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
  mkdir -p /home/mlzboy/b2c2/shared/db;
fi
其次,既然你正在使用-p switch mkdir,那么这个检查是没用的,因为这首先是做什么的.写吧:
mkdir -p /home/mlzboy/b2c2/shared/db;
就是这样.
kur*_*umi 91
实际上没有必要检查它是否存在.因为你已经想要创建它,如果它存在,只有mkdir会这样做
mkdir -p /home/mlzboy/b2c2/shared/db
Aut*_*ico 61
简单地说:
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
dog*_*ane 20
你需要[和]括号内的空格:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ] 
then
    mkdir -p /home/mlzboy/b2c2/shared/db
fi
ple*_*siv 17
更清洁的方式,利用shell逻辑运算符的快捷方式评估.仅当左侧为真时才执行运算符的右侧.
[ ! -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;