同时直接输出到标准输出和输出文件?

时间:2012-09-07 19:21:38

标签: shell unix file-io

我知道

./executable &>outputfile

会将标准输出和标准错误重定向到文件。这就是我想要的,但我也希望继续在终端上打印输出。这样做的最佳方式是什么?

编辑:好的,这是我的确切命令:我已经尝试了

./damp2Plan 10 | tee log.txt

./damp2Plan 10 2>&1 | tee log.txt

其中10只是传递给main的参数。都没有正常工作。结果是代码中的第一个printf语句确实转到terminal和log.txt就好了,但其余的都没有。我在Ubuntu 12.04上。

1 个答案:

答案 0 :(得分:3)

使用tee

./executable 2>&1 | tee outputfile

tee以块的形式输出,在看到任何输出之前可能会有一些延迟。如果您想要更接近实时输出,您可以像现在一样重定向到文件,并在另一个shell中使用tail -f进行监控:

./executable 2>&1 > outputfile

tail -f outputfile