首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >壳牌的逻辑,cmd1 && cmd2,它是相反的,对吗?

壳牌的逻辑,cmd1 && cmd2,它是相反的,对吗?
EN

Stack Overflow用户
提问于 2012-03-29 15:44:19
回答 2查看 622关注 0票数 3

我们知道&&的意思是逻辑AND,所以:

代码语言:javascript
复制
true && true  => true
false && true => false

当我们在Shell中工作时(在这里),成功的命令调用将返回0。在0操作之前,shell是否将AND更改为non-zero?或者Shell只是反转正常的logics

例如:

代码语言:javascript
复制
cat file1 && cat file2

只有当file2可以是cat-ed时,file1才是cat-ed

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-29 15:52:17

在Bash中,逻辑true表示为0,而逻辑false表示为非零值.这允许在逻辑操作中使用命令的退出值。

您可以通过浏览关于bash操作符的文档了解更多信息。

一个常见成语是使用&&链接命令,以便如果链中的任何命令失败,则不会执行以下命令:

代码语言:javascript
复制
cmd1 && cmd2 && cmd3
票数 1
EN

Stack Overflow用户

发布于 2012-03-29 15:46:35

在shell中(包括bash),&&确实意味着逻辑和。&&的参数可以是根据返回值计算的命令--返回值0表示成功(true),其他值失败(false)。

因此,在C/C++意义上,它是相反的(在C/C++及其ilk 0= false,other = true),但从shell的角度看,它不是(成功=真,失败=假)

UPDATE:基于&&不一定涉及执行命令的注释而更改的解释

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9928844

复制
相关文章

相似问题

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