亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

ll && echo yes || echo no && echo bbb 為啥echo bbb被執行了?

ll && echo yes || echo no && echo bbb 為啥echo bbb被執行了?


[root@localhost ~]# ll && echo yes || echo no && echo bbb

總用量 72

-rw-------. 1 root root 10387 3月 ?15 13:54 aa.txt

-rw-r--r--. 1 root root ?1840 3月 ? 7 23:11 aa.zip

-rw-------. 1 root root ?1246 2月 ? 5 07:37 ana.cfg

-rw-------. 1 root root ?1246 1月 ?30 08:08 anaconda-ks.cfg

-rwxr--r--. 1 root root ? 152 3月 ?15 13:34 hello.sh

-rw-r--r--. 1 root root 24772 1月 ?30 08:08 install.log

-rw-r--r--. 1 root root ?7690 1月 ?30 08:07 install.log.syslog

drwxr-xr-x. 6 root root ?4096 3月 ?15 12:18 test

yes

bbb

按理說,echo no 沒有被執行,所以echo bbb也不該被執行。

正在回答

3 回答

簡單的說,就是 ?ll && echo yes 的結果會和 ( || echo no)得到結果,此結果再和 (&& echo bbb) 得出結果。


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

我測試過,好像是這樣,連接符號(&&或||)右邊的命令是否運行,取決于連接符號左邊的各命令運行情況的邏輯預算值,命令運行了邏輯值為1,沒有運行邏輯值為0。

例如:

ll && echo yes || echo no && echo bbb

  1. ll 運行了,邏輯值為1,

  2. &&?echo yes?左邊=1 ?因此運行,邏輯值為1

  3. ||?echo no 左邊=1&&1=1,因此不運行,邏輯值為0

  4. && echo bbb?左邊=1&&1||0=1?因此運行

llaa && echo yes || echo no && echo bbb

-bash: llaa: command not found

no

bbb


1.llaa 運行,邏輯值為0,

2.&& echo yes 左邊=0 ?不運行,邏輯值為0

3.|| echo no 左邊=0&&0=0,因此運行,邏輯值為1

4.&& echo bbb 左邊=0&&0||1=1 因此運行


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

?命令批量執行,雖然前一個命令沒有執行,但yes執行了,bbb同樣會認為前一個命令正確執行。

這種用法不合理

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

舉報

0/150
提交
取消
Linux達人養成計劃 I
  • 參與學習       399958    人
  • 解答問題       3960    個

Linux入門視頻教程,以通俗易懂的語言帶你感受linux之美

進入課程

ll && echo yes || echo no && echo bbb 為啥echo bbb被執行了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號