ls || echo no && echo yes 為什么會打印yes?
ls || echo no && echo yes 這條命令為什么會打印yes? 這里老師解釋說是前面的ls執行成功了,這解釋沒有說服力??!因為前面可以有無數條命令,這些命令可能正確輸出,也可能錯誤輸出,這樣還怎么判斷?
ls || echo no && echo yes 這條命令為什么會打印yes? 這里老師解釋說是前面的ls執行成功了,這解釋沒有說服力??!因為前面可以有無數條命令,這些命令可能正確輸出,也可能錯誤輸出,這樣還怎么判斷?
2015-11-13
舉報
2019-11-19
是不是 ? [命令無論對錯]?|| echo no ?返回的值都是真
2019-09-02
mark
2015-12-17
(ls || echo no)&&echo yes
這樣你就看懂了,執行ls,到邏輯后再執行yes
2015-12-01
我明白了 因為加了 邏輯或 邏輯或是只會執行其中一條語句的 ?&&符號把這個a || b ?直接看成了一條語句 ?
2015-11-14
你這是Tony老師的說法,我覺得Tony老師這么解釋沒邏輯,所以才問了。這問題我自弄清楚了。并不是因為ls執行成功了,而是因為ls||echo no返回值是真,才會執行后面的echo yes.
2015-11-14
這跟前面的無數條命令沒有關系,ls指的就是開頭的這個ls。
|| 和 && 具有同等的優先級,所以 ls || echo no 會先執行,隨后是&&的部分:
那么開頭的ls執行成功了,所以就不用執行 || 后面的echo no了,這樣 && 前面的部分(ls || echo no)也算作執行成功,所以&&后面的echo yes還要繼續執行,這樣就打出yes了