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

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
  • 参与学习       399413    人
  • 解答问题       3791    个

Linux入门视频教程,以通俗易懂的语言带你感受linux之美

进入课程

ll && echo yes || echo no && echo bbb 为啥echo bbb被执行了?

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