你怎么能抑制在你杀死一个之后出现的Terminated
消息
在 bash 脚本中处理?
我尝试了 set +bm
,但它不起作用。
我知道另一种解决方案涉及调用 exec 2>/dev/null
,但这是
可靠的?如何重置它以便我可以继续看到 stderr?
最佳答案
为了使消息静音,您必须重定向 stderr
在消息生成时。因为kill
命令发送信号并且不等待目标进程响应,重定向 kill
命令的 stderr
对你没有好处。 bash 内置 wait
是专门为此目的而制作的。
这是一个非常简单的例子,它杀死了最近的后台命令。 ( Learn more about $! here. )
kill $!
wait $! 2>/dev/null
因为kill
和wait
都接受多个pid,所以你也可以做batch kill。这是一个杀死所有后台进程的示例(当然是当前进程/脚本的)。
kill $(jobs -rp)
wait $(jobs -rp) 2>/dev/null
我是从 bash: silently kill background function process 被带到这里的.
关于bash - 在 bash 中杀死后如何抑制终止消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716439/