为了账号安全,请及时绑定邮箱和手机立即绑定

ls || echo no && echo yes 为什么会打印yes?

ls || echo no && echo yes 这条命令为什么会打印yes? 这里老师解释说是前面的ls执行成功了,这解释没有说服力啊!因为前面可以有无数条命令,这些命令可能正确输出,也可能错误输出,这样还怎么判断?

正在回答

6 回答

是不是   [命令无论对错] || echo no  返回的值都是真

1 回复 有任何疑惑可以回复我~

mark

0 回复 有任何疑惑可以回复我~

(ls || echo no)&&echo yes

这样你就看懂了,执行ls,到逻辑后再执行yes

0 回复 有任何疑惑可以回复我~

我明白了 因为加了 逻辑或 逻辑或是只会执行其中一条语句的  &&符号把这个a || b  直接看成了一条语句  

0 回复 有任何疑惑可以回复我~
#1

dire

然后综合 楼上说的 这个语句返回的值是真 所以会执行&&后面的语句
2015-12-01 回复 有任何疑惑可以回复我~

你这是Tony老师的说法,我觉得Tony老师这么解释没逻辑,所以才问了。这问题我自弄清楚了。并不是因为ls执行成功了,而是因为ls||echo no返回值是真,才会执行后面的echo yes.

0 回复 有任何疑惑可以回复我~
#1

onemoo

我也是这么说的啊 “这样 && 前面的部分(ls || echo no)也算作执行成功”
2015-11-14 回复 有任何疑惑可以回复我~

这跟前面的无数条命令没有关系,ls指的就是开头的这个ls。

||&& 具有同等的优先级,所以 ls || echo no 会先执行,随后是&&的部分:

那么开头的ls执行成功了,所以就不用执行 || 后面的echo no了,这样 && 前面的部分(ls || echo no)也算作执行成功,所以&&后面的echo yes还要继续执行,这样就打出yes了

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

ls || echo no && echo yes 为什么会打印yes?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信