当前位置:  开发笔记 > 编程语言 > 正文

stashr在bash脚本中的临时重定向

如何解决《stashr在bash脚本中的临时重定向》经验,为你挑选了1个好方法。

我有一个简单的脚本,用于启动另一个程序.这个其他程序有时会产生一个SIGSEGV,这会破坏我的输出.因此,我添加了几行,这些行应该暂时重定向stderr/dev/null,以便SIGSEGV忽略它.以下是我的代码草稿:

exec 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>1

问题是最后一行不能满足我的要求.第一行显然有效,并重定向stderr.最后一行应该返回stderr到之前的位置(我只假设它是相同的stdout).

任何帮助都会得到满足!



1> Magnus Hiie..:

另一种选择是:

exec 3> /dev/stderr 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>&3

甚至

exec 3>&2 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>&3

这样,脚本保留了脚本的stdout和stderr的分离(即脚本stdout和stderr可以单独重定向.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有