如何禁止在bash中杀死后终止的消息?

前端之家收集整理的这篇文章主要介绍了如何禁止在bash中杀死后终止的消息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你如何禁止终止的消息,在你杀了一个
进程在bash脚本?

我尝试设置bm,但这不工作。

我知道另一个解决方案涉及调用exec 2> / dev / null,但是
可靠?如何重置它,以便我可以继续看到stderr?

简短的答案是,你不能。 Bash总是打印前台作业的状态。监视标志仅适用于后台作业,并且仅适用于交互式shell,而不适用于脚本。

请参阅jobs.c中的notify_of_job_status()。

正如你所说,你可以重定向,因此标准错误指向/ dev / null,但然后你错过任何其他错误消息。您可以通过在运行脚本的subshel​​l中执行重定向来使其临时。这留下原来的环境。

(script 2> /dev/null)

这将丢失所有错误消息,但只是从该脚本,而不是从任何其他运行在该shell。

您可以保存和恢复标准错误,通过重定向一个新的文件描述符指向那里:

exec 3>&2          # 3 is now a copy of 2
exec 2> /dev/null  # 2 now points to /dev/null
script             # run script with redirected stderr
exec 2>&3          # restore stderr to saved
exec 3>&-          # close saved version

但是我不推荐这样做 – 第一个的唯一的好处是,它保存一个子shell调用,而更复杂,甚至可能更改脚本的行为,如果脚本更改文件描述符。

原文链接:https://www.f2er.com/bash/389973.html

猜你在找的Bash相关文章