加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 09:22:02 所属栏目:安全 来源:网络整理
导读:你如何禁止终止的消息,在你杀了一个 进程在bash脚本? 我尝试设置bm,但这不工作。 我知道另一个解决方案涉及调用exec 2 / dev / null,但是 可靠?如何重置它,以便我可以继续看到stderr? 简短的答案是,你不能。 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调用,而更复杂,甚至可能更改脚本的行为,如果脚本更改文件描述符。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读