我有一个简单的脚本,用于启动另一个程序。这个其他程序有时可能会产生一个SIGSEGV
,这会扰乱我的输出。因此,我添加了几行,应该暂时重定向stderr
to /dev/null
使得SIGSEGV
被忽略。以下是我的代码草稿:
exec 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>1
问题是最后一行没有达到我想要的效果。第一行显然有效,并重定向stderr
。最后一行应该返回stderr
回到之前的位置(我只是假设与stdout
).
任何帮助,将不胜感激!
另一种选择是:
exec 3> /dev/stderr 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>&3
Or even
exec 3>&2 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>&3
这样,脚本就保留了脚本的 stdout 和 stderr 的分离(即脚本 stdout 和 stderr 可以单独重定向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)