当进程被信号结束时,将输出一条消息,类似于Terminated
或Killed
取决于所使用的信号。是否可以捕获该消息?
以这个示例管道为例:
while true; do timeout 2 sleep 5; done
它没有输出,但是sleep
每 2 秒终止一次。添加一个cat
:
while true; do timeout 2 sleep 5 | cat; done
它现在Terminated
每 2 秒输出一次但cat
看不到它 - 如果我替换cat
为tee somefile
然后文件仍然为空。
我试过2>&1
在命令行的不同地方重定向,但我无法将Terminated
输出放入文件中。
我认为它们是通过libc
链接输出到终端的 shell 而不是循环中的命令。
是否有可能将 theTerminated
和类似的 outout 放入管道中?
(最终,我想将sleep
acurl
和a 替换为cat
一个awk
脚本,该脚本同时处理curl
输出和Terminated
消息。)