首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何重定向bash中的所有stderr?

如何重定向bash中的所有stderr?
EN

Stack Overflow用户
提问于 2008-08-27 13:19:17
回答 6查看 19.9K关注 0票数 10

我正在寻找一种在交互式bash中重定向所有stderr流的方法(理想情况下,重定向到它的调用父进程)。

我不想从每个单独的命令重定向stderr流,这可以通过将2> a_file附加到每个命令来实现。

默认情况下,这些stderr流重定向到交互式bash的stdout。我希望将它们放在这个交互式bash进程的stderr上,以防止我的stdout被错误消息污染,并能够单独处理它们。

有什么想法吗?

我还没有找到答案...但也许它实际上是一个tty参数。有人知道一些关于tty/交互式shell处理stderr的责任吗?

EN

回答 6

Stack Overflow用户

发布于 2008-08-27 13:28:18

在bash中使用exec内置:

exec 2> /tmp/myfile

票数 10
EN

Stack Overflow用户

发布于 2008-08-27 13:27:48

您可以启动一个新的bash进程,重定向该进程的stderr:

  $ bash -i 2> stderr.log
  $ 
票数 4
EN

Stack Overflow用户

发布于 2008-09-16 18:00:37

在双队列中尝试您的命令,如下所示:

ssh remotehost "command" 2>~/stderr

在我的本地系统上使用远程主机上不存在的文件进行测试。

$ ssh remotehost "tail x;head x" 2>~/stderr
$ cat stderr 
tail: cannot open `x' for reading: No such file or directory
head: cannot open `x' for reading: No such file or directory
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档