我知道
./executable &>outputfile
会将标准输出和标准错误重定向到文件。这就是我想要的,但我也希望继续在终端上打印输出。这样做的最佳方式是什么?
编辑:好的,这是我的确切命令:我已经尝试了
./damp2Plan 10 | tee log.txt
和
./damp2Plan 10 2>&1 | tee log.txt
其中10只是传递给main的参数。都没有正常工作。结果是代码中的第一个printf语句确实转到terminal和log.txt就好了,但其余的都没有。我在Ubuntu 12.04上。
答案 0 :(得分:3)
使用tee
:
./executable 2>&1 | tee outputfile
tee
以块的形式输出,在看到任何输出之前可能会有一些延迟。如果您想要更接近实时输出,您可以像现在一样重定向到文件,并在另一个shell中使用tail -f
进行监控:
./executable 2>&1 > outputfile
tail -f outputfile