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

Linux 将标准错误重定向到文件,并在启动makefile时将标准输出保留到屏幕,linux,makefile,io-redirection,tcsh,Linux,Makefile,Io Redirection,Tcsh,我知道,要将标准错误和输出重定向到文件,我必须执行以下操作: make > & ! output.txt 注意我用的!以覆盖该文件。但如何将标准错误重定向到文件,并将标准输出留在屏幕上呢?或者更好的做法是在文件中同时显示错误和输出,但在屏幕上也显示输出,这样我就可以看到编译的进展了? 我试过: 但是它给了我一个错误。注意,它足以覆盖文件。如果输出被重定向到文件,您可以使用tail-f命令在屏幕上查看输出: $(make 1>output.txt 2>error.txt

我知道,要将标准错误和输出重定向到文件,我必须执行以下操作:

make > & ! output.txt
注意我用的!以覆盖该文件。但如何将标准错误重定向到文件,并将标准输出留在屏幕上呢?或者更好的做法是在文件中同时显示错误和输出,但在屏幕上也显示输出,这样我就可以看到编译的进展了? 我试过:

但是它给了我一个错误。

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

$(make 1>output.txt 2>error.txt &) && tail -f output.txt error.txt
请注意,它足以覆盖该文件。如果输出被重定向到文件,您可以使用tail-f命令在屏幕上查看输出:

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

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

您正在阅读bash/sh文档并使用tcsh。tcsh没有任何方法只重定向stderr。您可能需要切换到一个非csh Shell。

只需使用pipe-into-tee命令即可。以下内容将把stdout和stderr都放入一个文件中,并将其放入终端:

make |& tee output.txt
编辑

GNU Bash手册的解释,章节:

如果使用了“|&”,则除了其 标准输出,通过 管它是2>和1的简写。这个隐式重定向 标准输出的标准误差在任何 由命令指定的重定向


只需使用“将管道插入T形三通”命令即可完成此操作。以下内容将把stdout和stderr都放入一个文件中,并将其放入终端:

make |& tee output.txt
编辑

GNU Bash手册的解释,章节:

如果使用了“|&”,则除了其 标准输出,通过 管它是2>和1的简写。这个隐式重定向 标准输出的标准误差在任何 由命令指定的重定向


它会给您带来什么错误?make:**没有规则将目标设为'2'。停止。它会给您带来什么错误?make:**没有规则将目标设为'2'。停止。谢谢,但它说输出重定向不明确。请注意,如果我这样做:make>output.txt,它说:output.txt:文件存在。所以我想,仅仅覆盖文件是不够的。无法重现错误。你在用bash吗?然而,我找到了一个更好的解决方案。试试看。我用的是油灰,它是tcsh。现在它说非法变量名你能用bash吗?通常通过键入bash。。我没有使用tcsh的经验,抱歉,谢谢,但它说输出重定向不明确。请注意,如果我这样做:make>output.txt,它说:output.txt:文件存在。所以我想,仅仅覆盖文件是不够的。无法重现错误。你在用bash吗?然而,我找到了一个更好的解决方案。试试看。我用的是油灰,它是tcsh。现在它说非法变量名你能用bash吗?通常通过键入bash。。我没有tcsh方面的经验,抱歉,我没有重定向这两个,但仍在屏幕上显示输出?我没有重定向这两个,但仍在屏幕上显示输出?