您的位置:首页 > 运维架构 > Shell

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

2017-11-24 12:47 495 查看
在匹配字符串相等时,我用了类似这样的语句:

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


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

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


究其原因,是因为:

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

当然不总是出错,如果变量STATUS值不为空,程序就正常了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: