首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux,Test命令,为什么[0 -ne 0]是false而不是true?

问Linux,Test命令,为什么[0 -ne 0]是false而不是true?
EN

Stack Overflow用户
提问于 2022-05-03 17:21:44
回答 2查看 108关注 0票数 1

在Linux中使用测试命令时,将等于“零”的“零”与“零”进行数值比较时,通过回波$获取退出代码0?

代码语言:javascript
复制
$[ 0 -eq 0 ]
$echo $?
0

但是,当使用不等于进行测试时,为什么退出代码显示为false,退出值为1?

代码语言:javascript
复制
$[ 0 -ne 0 ]
$echo $?
1

人测试

代码语言:javascript
复制
INTEGER1 -ne INTEGER2
          INTEGER1 is not equal to INTEGER2

有人能解释一下,当将等同于同一个整数时,它背后的逻辑不等于?

EN

回答 2

Stack Overflow用户

发布于 2022-05-03 17:26:52

在bash中,0(这实际上意味着没有错误)表示true,非零(例如1)表示有一些错误,AKA false。

试试这个:

代码语言:javascript
复制
if [ 0 -ne 0 ]
then
  echo The above is not true
else
  echo The above is true
fi

或者,以一条线的形式:

代码语言:javascript
复制
if [ 0 -ne 0 ]; then echo true; else echo false; fi
票数 0
EN

Stack Overflow用户

发布于 2022-05-03 17:29:49

按照惯例,零的退出代码表示成功,而非零表示错误/失败。考虑:

代码语言:javascript
复制
$ true
$ echo $?
0
$ false
$ echo $?
1
$ if true; then echo ok; else echo no; fi
ok
$ if false; then echo ok; else echo no; fi
no
$ if [ 0 -ne 0 ]; then echo ok; else echo no; fi
no
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72103173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档