有人可以解释timeout
如何为管道命令工作?例如,
timeout 2s a | b
以下timeout
仅适用于a
命令?
如果确实发生超时,是否会导致管道损坏?
答案 0 :(得分:1)
是的,timeout
是常规命令,而不是内置命令,因此使用参数timeout
,2s
和a
执行。如果超时发生,b
中管道的读取端将在读取其中的所有数据后指示EOF(因为没有剩余的进程写入管道)。但是b
将不会从a
退出(无论是因为超时还是因为它在超时之前完成)而得到SIGPIPE信号;一个破损的管道在写入方面是一个问题,而不是读取方面。