2014-11-04 75 views
-1

试图请检查是否目录存在于主目录检查阉的目录存在于主目录

if [ ! -d "$HOME/Smart_Cycle" ]; then 
    mkdir Smart_Cycle $DIRPATH 
    echo "Creating DIrecroty"" 
fi 

试图请检查是否Smart_Cycle目录中的主目录存在,如果不存在它会创建目录。不知道发生了什么事,或者我是否在正确的轨道上。

运行脚本时我有这两个错误,我以前从来没有

./smartcycle看出:4号线:意外的EOF而寻找匹配`“” ./smartcycle:6号线:语法错误:文件

+3

这不工作?你是否在意目录不存在,你需要创建它?因为如果你不这样做,那么'mkdir -p“$ HOME/Smart_Cycle”'可能就是你想要的。如果您想要关于它的消息,请添加'-v'。 – 2014-11-04 18:08:17

+0

-p选项在命令中做了什么,并且将v选项放在-p选项之后? – jmurphy1267 2014-11-04 18:11:18

+0

http://linux.die.net/man/1/mkdir以及任何'mkdir -v -p','mkdir -vp','mkdir -p -v'或'mkdir -pv'都会使用这两个选项。 – 2014-11-04 18:11:56

回答

0

您对

echo "Creating DIrecroty"" 

一个双引号试试这个

if [ ! -d "$HOME/Smart_Cycle" ]; then 
    mkdir "$HOME/Smart_Cycle" 
    echo "Creating DIrecroty" 
fi 

您可以创建多个目录一次

mkdir A B C 

在你的情况,$ DIRPATH会进行评估并创建第二个目录,指向$ DIRPATH中包含的值

+2

'mkdir -p'的重点在于条件是不必要的。如果目录已经存在,则什么都不会发生;如果不是,则创建它。 – tripleee 2014-11-04 19:13:20

+0

是真的,请注意,'mkdir -p'将根据需要生成父目录。 – Kalenda 2014-11-04 20:08:05

1

EOF意外结束是因为你有双“”在

"Creating DIrecroty"" 

由于伊坦建议,更好的办法是使用

mkdir -p "$HOME/Smart_Cycle" 

-p将确保指定路径中的所有目录存在,如果不存在,它们将被创建。

+0

我不确定'-p'是否需要*此处*:'$ HOME'应该是一个现有的目录,并且'Smart_Cycle'只有一个目录深 – 2014-11-04 20:14:22

+0

没有-p,mkdir如果$ HOME/Smart_Cycle会失败if 'Smart_Cycle'目录存在 – bart 2014-11-04 21:06:07

+0

是否有网站列出可能的错误和解释? – jmurphy1267 2014-11-15 17:41:02