使用-z或-n对一个变量判空时,需要注意若直接使用[ -n ${ARG} ]这种形式,若${ARG}中有空格将会报错,
ARG="sd dd"
if [ -n ${ARG} ]; then
echo 'ARG:' ${ARG}
else
echo 'ARG is empty.'
fi
输出:
line 27: [: sd: binary operator expected
ARG is empty.
显然不对
解决方法,使用[[ -n ${ARG} ]]或[ -n "${ARG}" ]
参考:
https://digitalvectorz.wordpress.com/2009/12/10/bashshell-programming-binary-operator-expected/
本文探讨了在Bash脚本中对变量进行判空时的常见错误及正确做法。当使用-z或-n选项时,如果变量中含有空格,直接使用会引发错误。文章提供了两种避免该问题的方法,并附上了示例代码。

602

被折叠的 条评论
为什么被折叠?



