我在从自动构建中记录输出时遇到问题.
使用Makefile和makefile实用程序完成构建.
问题是像编译器命令行这样的正常输出转到stdout并且编译错误转到stderr.
我想从屏幕上显示的构建中获取输出.所以类似于:
(stdout) CC -c file.cpp (stderr) Compile error at file.cpp line 232, blah blah blah (stdout) CC -c file2.cpp
我尝试过(从ksh脚本)是:
make -k> build.log 2> build.log
这导致单个日志文件,但问题是流被缓冲,因此日志文件中的结果全部混淆.
我可以将输出捕获到2个单独的日志文件中,但之后我就没有关于如何将它们粘合到一个日志文件中的信息.
在这种情况下,有没有办法关闭stdout和stderr的缓冲?
make -k > build.log 2>&1
这应该对你更好,因为它不是单独重定向stderr和stdout,而是将stderr重定向到stdout,这应该使缓冲同步.
如果要将其记录到文件中,并将其打印到控制台:
make -k 2>&1 | tee build.log
试试这个
make -k > build.log 2>&1