我收到“期望二进制运算符”或“参数太多”的Bash错误,它指向第二行代码(if语句)。如果top_dir没有空格,则错误消失。如果我需要在top_dir中使用空格,该如何解决此代码?
log_dir="${top_dir}/${group}"
if [ ! -d $log_dir ]; then
mkdir -p "${log_dir}"
fi
谢谢!
随着[ ... ]
您需要报价,以防止扩展:
if [ ! -d "$log_dir" ]; then
有了[[ ... ]]
你可以省略引号和扩张不会发生:
if [[ ! -d $log_dir ]]; then
例:
$ x='a b'
$ mkdir "$x"
$ [ -d "$x" ] && echo "$x exists"
a b exists
$ [[ -d $x ]] && echo "$x exists"
a b exists
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句