将标准错误重定向到文件,并在启动makefile时将标准输出保留到屏幕

时间:2013-05-03 02:15:17

标签: linux makefile io-redirection tcsh

我知道要将标准错误和输出重定向到文件,我必须这样做:

make > & ! output.txt

注意我使用!覆盖文件。但是如何将标准错误重定向到文件并将标准输出保留到屏幕?或者甚至更好地将错误和输出都存储在文件中但也输出到屏幕上,所以我可以看到我的编译是如何进展的? 我试过了:

make 2>! output.txt 

但它给了我一个错误。

3 个答案:

答案 0 :(得分:2)

请注意,>足以覆盖该文件。如果重定向到文件,您可以使用tail -f命令查看屏幕上的输出:

$(make 1>output.txt 2>error.txt &) && tail -f output.txt error.txt

答案 1 :(得分:2)

您只需使用pipe into tee命令即可完成此操作。以下内容将stdout和stderr放入文件中,也放入终端:

make |& tee output.txt

修改

GNU Bash手册的说明,3.2.2 Pipelines部分:

  

如果使用'|&',则除了命令1之外,还有command1的标准错误   标准输出,通过连接到command2的标准输入   管;它是2>& 1 |的简写。这种隐式重定向   标准输出的标准误差在任何之后执行   命令指定的重定向。

答案 2 :(得分:1)

您正在阅读bash / sh文档并使用tcsh。 tcsh没有任何方法可以重定向stderr。您可能希望切换到其中一个非csh shell。