我的输出大约每秒在终端上打印 1 行,总共大概 100-200 行。
我尝试使用捕获输出tee
,但它会在进程结束时打印所有行,而不是实时打印。
我也尝试使用该script
命令,但是输出文件中有一些奇怪的字符,例如^M
与结果一起打印的,这不好。
我怎样才能在捕捉的同时实时打印?
答案1
您需要使用类似以下方法更改程序的输出缓冲区行为stdbuf(1)
:
stdbuf -oL brasteins-program | tee brasteins-program.log
我的输出大约每秒在终端上打印 1 行,总共大概 100-200 行。
我尝试使用捕获输出tee
,但它会在进程结束时打印所有行,而不是实时打印。
我也尝试使用该script
命令,但是输出文件中有一些奇怪的字符,例如^M
与结果一起打印的,这不好。
我怎样才能在捕捉的同时实时打印?
您需要使用类似以下方法更改程序的输出缓冲区行为stdbuf(1)
:
stdbuf -oL brasteins-program | tee brasteins-program.log