字符串判空有空格报错:binary operator expected

时间:2025-04-11 21:48:57

使用-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}" ]

参考:

/2009/12/10/bashshell-programming-binary-operator-expected/