根据这个答案:Unix Bash Shell编程如果目录存在,我正在尝试检查目录是否存在.但是,当我运行这个时,我得到了line 1: [-d: command not found.我在这做错了什么?
if [-d "~/.ssl"]; then
echo '~/.ssl directory already exists'
else
sudo mkdir ~/.ssl/
fi
Run Code Online (Sandbox Code Playgroud)
koj*_*iro 19
[-d
Run Code Online (Sandbox Code Playgroud)
不是命令.
[ -d
Run Code Online (Sandbox Code Playgroud)
是test带-d选项的命令.
空间很重要.
(此外,[命令需要以]参数结束,该参数同样必须通过空格与其他参数分开.)
这就是问题的症结所在.但是还有其他一些问题:
"$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
Run Code Online (Sandbox Code Playgroud)