为什么这个while循环执行完echo while00 && echo while01后不break
while $(sleep 0.5); do pgrep -f baidu > /dev/null 2>&1 || (echo while00 && echo while01 && break); done
监听进程退出后,执行后面的命令
比如ping -c 10 -i 1 baidu.com
(...) 会创建一个子 shell,所以 break 不工作。
其实按照你的代码意图,这里不写括号是完全没问题的,直接去掉括号就可以了。
P.S. 你前面写的 while $(sleep 0.5) 是对 shell 命令的误用,这里应该写 while sleep 0.5,加个 $ 多此一举了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。