shell求助,数值比较-eq,-ne,-gt,-ge,-lt,-le。书上说的是:假值是零,真值为1,可写的脚本却出错了。

[jfhuang@localhost shell]$ ./sh05_
cat sh05_
test 1 -eq 1
echo "$?"
test 1 -ne 1
echo "$?"
test 1 -gt 1
echo "$?"
test 1 -ge 1
echo "$?"
test 1 -lt 1
echo "$?"
test 1 -le 1
echo "$?"
0
1
1
0
1
0

要不是你看错了,要不就是书上写错了!
正解:$?是shell变量,表示"最后一次执行命令"的退出状态.0为成功,非0为失败.
切记:$?永远表示shell命令最后一次执行后的退出状态,当函数执行完毕后,如果又执行了其它命令,则$?不再表示函数执行后的状态,而表示其它命令的退出状态.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-18
你的那本垃圾书赶紧丢掉吧
linux的shell与其它的语句一个很大甚至是完全相反的一点不同就是:返回结果为0表示真,其它任何值为假
第2个回答  2010-09-17
估计你是看错了 ,正确的是 执行成功返回状态则为 "0";其他一切返回状态都是错误的,比如"1".
第3个回答  2012-03-15
你看的什么书啊。我看到的这本书《轻松学用linux shell编程》里面也是这么说的,很郁闷
第4个回答  2010-09-18
是不是你书上没看清楚,我也是个菜鸟,不过这个我知道,0是真,1是假,你可能书上没看清楚

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网