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

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

发布时间:2020-12-15 21:20:28 所属栏目:安全 来源:网络整理
导读:我有一个简单的脚本,用于启动另一个程序.这个其他程序有时会产生一个SIGSEGV,这会破坏我的输出.因此我添加了几行,它们应该暂时将stderr重定向到/ dev / null,以便忽略SIGSEGV.以下是我的代码草稿: exec 2 /dev/nullprogname ./tmp/run.txt run_status='OK'e
我有一个简单的脚本,用于启动另一个程序.这个其他程序有时会产生一个SIGSEGV,这会破坏我的输出.因此我添加了几行,它们应该暂时将stderr重定向到/ 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

甚至

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

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

(编辑:李大同)

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

    推荐文章
      热点阅读