linux - 需要一种临时重定向 STDOUT 的方法

标签 linux bash redirect

我知道如何在 Linux 中重定向输出。问题是,我的 bash 脚本中有很多输出,我不想输入类似

echo $foo >> bar

一遍又一遍。我宁愿做这样的事情:

hey, bash, for the time being put all your STDOUT in "bar"
echo $foo
.
.
OK, bash, you can go back to regular STDOUT now

我尝试将 FD 1 作为文件打开:

exec 1>bar

但是当我完成后无法让 STDOUT 恢复正常。关闭文件

exec 1>&-

给我无法解决的错误。

有什么办法吗?谢谢!

最佳答案

你必须先保存 stdout(例如将它链接到 fd #4)

exec 4<&1

重定向标准输出

exec 1>bar

并恢复保存的标准输出

exec 1<&4

关于linux - 需要一种临时重定向 STDOUT 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238573/

相关文章:

linux - 从 Linux 上的文件中删除 com.apple.quarantine

linux - 如何指定 tar 最终结构

bash:路径中的撇号

node.js - 无法使用 nginx 隐藏位置的端口

linux - 如何在不离开当前 shell 的情况下在当前 shell 中间脚本中设置 sudo?

c++ - 如何提高 pthreads 中的线程优先级?

bash - 在 bash 命令中运行时,分号有什么作用?

bash - 启动并监视 shell 脚本中的进程以完成

.htaccess - 301 仅在特定 url 上重定向,同时使用 seo 友好重写

java - 从一个 Web 应用程序重定向到另一个 Web 应用程序时如何传递数据?