Chinaunix

标题: && vs || ,真与假,1与0 的问题 [打印本页]

作者: mxiaohua1768    时间: 2012-07-13 00:33
标题: && vs || ,真与假,1与0 的问题
echo $(( 1 && 2 ))   $(( 3 && 0 ))  $(( 4 || 0 )  $(( 0 || 0 ))  
1  0  1 0
这个的1  0 是什么意思,退出状态码?不像啊!  1 && 2 的结果都不是0,应该为真吧,退出状态码应该是0吧。这里的1 代表神马
                                             3 && 0 有个0,为假把,结果是个0 ~~~~~~~~这数字代表的啥!

ABS中说:((   )) 结构拓展并计算一个算数表达式的值。如果表达式结果为0,
            那么返回的退出状态码为1,或者为“假”。而一个非零值的表达式
            返回的退出状态码为0,或者是“true”。
作者: personball    时间: 2012-07-13 08:41
本帖最后由 personball 于 2012-07-13 08:47 编辑

回复 1# mxiaohua1768


    命令或脚本的执行结果: 返回值为0 为真,非0为假
    你想想 $(( 1&&2 ))  和  cmd1&&cmd2  一样不一样就行了。。
  1. personball@vostro:~$echo $(( 1&&1 ))
  2. 1
  3. personball@vostro:~$echo $(( 1&&0 ))
  4. 0
  5. personball@vostro:~$echo $(( 0&&0 ))
  6. 0
  7. personball@vostro:~$echo $(( 0&&1 ))
  8. 0
复制代码
算术运算形式中的真值表和正常的数学中的定义一样
命令形式中的真值表  对于0 1的true false 定义正好相反,即返回0为真,非0为假。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2