当前位置:论坛首页 > Linux面板 > 建议

bug反馈:安装脚本2601行出错

发表在 Linux面板2017-1-3 09:10 [复制链接] 2 2616

在centos6.8系统下安装,结束后提示2601行错误。
QQ截图20170103090410.jpg

网上查询后得知:
shell脚本报错:"[: =: unary operator expected"
    在匹配字符串相等时,我用了类似这样的语句:
if [ $STATUS == "OK" ]; then     
echo "OK"
fi
    在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因。把语句改成这样就不会出错了.
if [[ $STATUS = "OK" ]];
then     
echo "OK"
fi
    究其原因,是因为如果变量STATUS值为空,那么就成了 [ = "OK"] ,显然 [ 和 "OK" 不相等并且缺少了 [ 符号,所以报了这样的错误。当然不总是出错,如果变量STATUS值不为空,程序就正常了,所以这样的错误还是很隐蔽的。
    或者用下面的方法也能避免这种错 误:if [ "$STATUS"x == "OK"x ]; then     echo
"OK"fi。当然,x也可以是其他字符。顺便提一点,shell中有没有双引号在很多情况下是一致的。

使用道具 举报 只看该作者 回复
发表于 2017-1-3 17:15:21 | 显示全部楼层
感谢,已修正。
使用道具 举报 回复 支持 反对
发表于 2017-1-3 20:54:37 | 显示全部楼层

你好,我还发现好像是curl编译错误还是怎么回事,php程序采集的时候,获取的链接网址乱码,比如正常的是http://asdasd.com/  但是用宝塔获取的是   乱码tp://asdasd.com/        
nginx设置伪静态,伪静态正确,但是用在宝塔就是不行。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表