如何在bash中重定向所有stderr?

Gré*_*het 10 linux bash shell

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

我不想从每个单独的命令重定向stderr流,我可以通过附加2> a_file到每个命令来完成.

默认情况下,这些stderr流被重定向到交互式bash的stdout.我想让他们在这个交互式bash进程的stderr上,以防止我的stdout被错误消息污染,并能够分开处理它们.

有任何想法吗?

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

gav*_*rie 9

exec在bash中使用内置:

exec 2> /tmp/myfile


小智 4

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

  $ bash -i 2> stderr.log
  $ 
Run Code Online (Sandbox Code Playgroud)