相关疑难解决方法(0)

bash:如何重定向stdin/stderr然后再恢复fd?

我想要一个脚本将stdin和stderr重定向到一个文件,做一堆东西,然后撤消那些重定向并对文件内容采取行动.我尝试着:

function redirect(){
   exec 3>&1
   exec 4>&2
   exec 1>outfile 2>&1
}
function undirect(){
   exec 1>&3
   exec 2>&4
}
echo first
redirect
echo something
cat kjkk
undirect
if some_predicate outfile; then echo ERROR; fi
Run Code Online (Sandbox Code Playgroud)

这似乎做我想要的,但似乎相当复杂.是否有更清洁/更清晰的方法来做到这一点?

bash redirect descriptor

7
推荐指数
1
解决办法
1344
查看次数

标签 统计

bash ×1

descriptor ×1

redirect ×1