如何禁止在bash中杀死后终止的消息?
发布时间:2020-12-15 09:22:02 所属栏目:安全 来源:网络整理
导读:你如何禁止终止的消息,在你杀了一个 进程在bash脚本? 我尝试设置bm,但这不工作。 我知道另一个解决方案涉及调用exec 2 / dev / null,但是 可靠?如何重置它,以便我可以继续看到stderr? 简短的答案是,你不能。 Bash总是打印前台作业的状态。监视标志仅
你如何禁止终止的消息,在你杀了一个
进程在bash脚本? 我尝试设置bm,但这不工作。 我知道另一个解决方案涉及调用exec 2> / dev / null,但是
简短的答案是,你不能。 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调用,而更复杂,甚至可能更改脚本的行为,如果脚本更改文件描述符。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |