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也不該被執行。
2015-09-16
簡單的說,就是 ?ll && echo yes 的結果會和 ( || echo no)得到結果,此結果再和 (&& echo bbb) 得出結果。
2015-03-16
我測試過,好像是這樣,連接符號(&&或||)右邊的命令是否運行,取決于連接符號左邊的各命令運行情況的邏輯預算值,命令運行了邏輯值為1,沒有運行邏輯值為0。
例如:
ll && echo yes || echo no && echo bbb
ll 運行了,邏輯值為1,
&&?echo yes?左邊=1 ?因此運行,邏輯值為1
||?echo no 左邊=1&&1=1,因此不運行,邏輯值為0
&& 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 因此運行
2015-03-16
?命令批量執行,雖然前一個命令沒有執行,但yes執行了,bbb同樣會認為前一個命令正確執行。
這種用法不合理