当前位置: 技术问答>linux和unix
简单的shell条件判断,给的错误信息太含糊,不明白
来源: 互联网 发布时间:2017-01-30
本文导语: if [ -z $dfRecord -o "$dfRecord"x = "uninit state"x ] then ................... else ................... fi 如上,说if行出错,信息为 [: too many arguments,帮忙看看,谢谢! | if 用==来做...
if [ -z $dfRecord -o "$dfRecord"x = "uninit state"x ]
then
...................
else
...................
fi
如上,说if行出错,信息为 [: too many arguments,帮忙看看,谢谢!
then
...................
else
...................
fi
如上,说if行出错,信息为 [: too many arguments,帮忙看看,谢谢!
|
if 用==来做等于判断
|
多个条件用括号和与或非分开判断
if [ -z $dfRecord ] && [ "$dfRecord "x == "uninit state "x ]
then
...................
else
...................
fi
-o是啥? 貌似没见过....
if [ -z $dfRecord ] && [ "$dfRecord "x == "uninit state "x ]
then
...................
else
...................
fi
-o是啥? 貌似没见过....
|
有空格? 那就用引号括起来...
字符串最好都用括号括起来
字符串最好都用括号括起来
|
单从这句脚本而已,没什么错误,但你的$dfRecord没有上文,shell在执行时判断到没这个变量所以有问题了,比如你在它前面加个dfRecord="aaa",就可以正常了。
另外你的if句好像逻辑上不通,-z 是判断是否为空的,不为空才会去做后面的判断,你用 -o 就是失效了吧,应该用 -a 吧。。。
另外你的if句好像逻辑上不通,-z 是判断是否为空的,不为空才会去做后面的判断,你用 -o 就是失效了吧,应该用 -a 吧。。。