当前位置:  开发笔记 > 编程语言 > 正文

将bash stdout/stderr重定向到两个地方?

如何解决《将bashstdout/stderr重定向到两个地方?》经验,为你挑选了2个好方法。

这个问题一直困扰着我一段时间.是否有可能重定向stdoutstderr到两个端子输出一个程序?

我知道可以将输出重定向到文件和stdoutwith tee,但我希望它转到程序(我的编辑器[TextMate])以及终端输出......当然这是可能的(我知道它可能与zsh ...)



1> JasonSmith..:

您可以使用命名管道,该管道专门用于您描述的情况.

mkfifo some_pipe
command_that_writes_to_stdout | tee some_pipe \
  & command_that_reads_from_stdin < some_pipe
rm some_pipe

或者,在Bash中:

command_that_writes_to_stdout | tee >(command_that_reads_from_stdin)


Bash的进程替换将在一步中为您完成此操作(类似于"匿名命名管道")command_that_writes_to_stdout | tee>(command_that_reads_from_stdin)
@Nils:如果将`|`替换为`|&`,则bash会同时重定向两个stdout / stderr。

2> CB Bailey..:

是否可以将stdout和stderr重定向到终端输出和程序?

我不确定将stdout和stderr组合在一个编辑器的输入上是多么有用,但这样的东西能做你需要的吗?

input_prog 2>&1 | tee /dev/tty | my_editor


至少在Linux上,您还可以使用`/ dev/stdout`和`/ dev/stderr`
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有