管道直接tty输出到sed

时间:2014-12-15 20:51:03

标签: bash io-redirection

我有一个脚本用于构建程序,我重定向到sed以在构建期间突出显示错误等。

这很好用,但问题是在这个构建脚本的最后它启动了一个通常写入终端的应用程序,但是stdout和stderr重定向似乎并没有捕获它。我不完全确定这个输出是如何打印出来的,这很复杂。

buildAndStartApp # everything outputs correctly
buildAndStartApp 2>&1 | colorize # Catches build output, but not server output

有没有办法捕获所有终端输出? "脚本"命令捕获所有内容,但我希望输出仍然打印到我的终端而不是重定向到文件。

2 个答案:

答案 0 :(得分:1)

我发现script有一个运行命令的-c选项,所有输出都打印到stdout以及文件。

我的命令最终成为:

script -c "buildAndStartApp" /dev/null | colorize

答案 1 :(得分:0)

首先,当您使用script时,输出 仍会转到终端(以及重定向到文件)。您可以在第二个窗口中执行此类操作以实时查看彩色输出:

tail -f typescript | colorize

其次,如果命令的输出即使你同时重定向了stdout和stderr,那么命令可能直接写入/dev/tty,在这种情况下类似script使用伪终端是唯一可行的方法。

相关问题