根据其文档,bash 会等到管道中的所有命令都完成运行后再继续
shell 在返回值之前等待管道中的所有命令终止。
那么为什么命令会yes | true立即完成呢?不应该yes永远循环并导致管道永远不会返回吗?
yes | true
yes
还有一个子问题:根据POSIX 规范,shell 管道可以选择在最后一个命令完成后返回或等待所有命令完成。在这个意义上,普通壳有不同的行为吗?是否有任何贝壳yes | true会永远循环?
shell bash pipe
bash ×1
pipe ×1
shell ×1