找不到命令is_dir

时间:2017-01-25 12:53:52

标签: bash

我试图检查文件夹是否存在。如果它没有,我就创建它。

我有这段代码:

if [ $(is_dir "$contaniningdir/run") = "NO"]; then
  mkdir "$containingdir/run"
fi

但是,我得到了:

is_dir: command not found

那么这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

你应该使用

if [ ! -d "$DIRECTORY" ]; then
  # your mkdir and other stuff ... 
fi

根据this question/answer.。另一个相关的问题/答案是here

其中一条评论也提到了一个重要的通知:

  

要记住一件事:[! -d“$ DIRECTORY”]也是如此   如果$ DIRECTORY不存在,或者确实存在但不是目录。

您可以查看其他问题的页面。

is_dir是一个PHP函数,你可能无意中混入了bash :)

答案 1 :(得分:1)

bash能够在没有外部命令的情况下检查目录是否存在:

if [ ! -d "${containingdir}/run" ]; then
  mkdir "${containingdir}/run"
fi

!为否定,-d检查参数是否存在且是否为目录