shell脚本报错:"[: =: unary operator expected"

云计算 waitig 655℃ 百度已收录 0评论

在匹配字符串相等时,我用了类似这样的语句:

while [ $cursor != "null" ]
do
    ...
done

在运行时出现了 [: =: unary operator expected的错误,尝试了删除等号两侧的空格和括号里的空格都不管用,把语句改成这样就不会出错了:

while [ "$cursor"x != "null"x ]
do
    ...
done

究其原因,是因为:

如果变量STATUS值为空,那么就成了 [ = “OK”] ,显然 [ 和 “OK” 不相等并且缺少了 [ 符号,所以报了这样的错误。

当然不总是出错,如果变量STATUS值不为空,程序就正常了。


本文由【waitig】发表在等英博客
本文固定链接:shell脚本报错:"[: =: unary operator expected"
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)