有没有办法刷新正在运行的进程的stdout

W.F*_*.F. 6 linux bash stdout

我有一个长时间运行的进程,stdout重定向到一个文件.例如:

./my-script.sh > file.txt &
Run Code Online (Sandbox Code Playgroud)

部分stdout仍然被缓存,但我想将其刷新到文件,以便更早地查看结果.有办法吗?

hek*_*mgl 8

缓存由libc处理.您可以使用该stdbuf命令更改缓冲区大小:

stdbuf -o0 ./my-script.sh > file.txt &
Run Code Online (Sandbox Code Playgroud)

-o0将stdout的缓冲区大小设置为0.也许你也想要-e0stderr.