shell脚本报错:"[: =: unary operator expected" 解决方案

blogdaren 2013-02-25 抢沙发 4996人次

问题背景:

执行shell脚本报错:

"[: =: unary operator expected"

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

if [ $PARAM== "update" ]; then     
    echo "do update......"
fi

问题原因:

因为如果变量PARAM值为空,那么就成了 [ = "update"] ,显然 [ 和 "update" 不相等并且缺少了 [ 符号,所以报了这样的错误,当然不总是出错,如果变量PARAM值不为空,程序就OK了,所以这样的错误还是很隐蔽的。

解决方案:

if [[ $PARAM= "update" ]]; then     
    echo "do update......"
fi

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:shell脚本报错:"[: =: unary operator expected" 解决方案

发表评论:

您的昵称:
电子邮件:
个人主页:

Free Web Hosting