当管道和输入重定向都按命令完成时会发生什么

当管道和输入重定向都按命令完成时会发生什么

用于命令

echo 'from pipe'|(cat <<< 'from input redirect')  

输出是

from input redirect

来自 echo 的“来自管道”行会发生什么情况?

答案1

它将在输出缓冲区中未使用,并在两个命令退出时被丢弃。

如果左侧产生足够的数据来填充输出缓冲区,它将暂时暂停,直到缓冲区被消耗。由于这种情况不会在这里发生,因此SIGPIPE一旦右侧命令终止,它最终会收到信号并因“管道破裂”而死亡。它还可以SIGPIPE专门捕获信号并优雅地退出。

相关内容