Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
按照这个答案:Unix Bash Shell Programming if directory exists,我试图检查目录是否存在。但是,当我运行此命令时,我得到
不是命令。
是带有-d选项的
空间很重要。
(此外,
这就是问题的症结所在。但是,还有其他一些问题:
如果引用波浪号,则不会扩展。 (这是您可能希望避免使用引号的罕见地方之一。)尽管引号很棒,所以为什么不编写 您的检查可能已被撤销-现在,您仅在目录已经存在的情况下才尝试创建该目录。
老实说,您真正需要的可能是:
想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
按照这个答案:Unix Bash Shell Programming if directory exists,我试图检查目录是否存在。但是,当我运行此命令时,我得到
line 1: [-d: command not found
。我在这里做错了什么?if [-d "~/.ssl"]; then
echo '~/.ssl directory already exists'
else
sudo mkdir ~/.ssl/
fi
最佳答案
[-d
不是命令。
[ -d
是带有-d选项的
test
命令。空间很重要。
(此外,
[
命令需要以]
参数结尾,同样必须用空格将其与其他参数分开。)这就是问题的症结所在。但是,还有其他一些问题:
"$HOME/.ssl"
呢? (〜和“$ HOME”之间有细微的差别,但是对于大多数用途而言并不重要。)老实说,您真正需要的可能是:
if mkdir -p ~/.ssl; then
# Do stuff with new directory
else
# Handle failure (but keep in mind `mkdir` will have its own error output)
fi
关于bash - [-d : command not found,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22768533/