如果我有一个长时间运行的命令,会定期输出一些数据,例如我想用 awk (或其他东西)处理的 tail -F
:
tail -F service.log | awk '{ ... } END { print ... }'
如何仅终止第一个进程(在本例中为尾部),以便我可以在 awk 中看到 END {}
block 的结果?如果我按 Control+C 整个管道就会停止。
我发现有效的一种方法是打开一个单独的选项卡/术语窗口,grep 第一个进程的 PID 并从那里kill
它,但它看起来相当笨拙,有吗另一种解决方案?
最佳答案
也许是这样的?
tail -F service.log | (trap '' INT; awk '{ ... } END { print ...}')
关于linux - 在 bash 中仅杀死管道中的第一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693183/