在不缓冲 stdout 和 stderr 的情况下记录输出,可以使用以下方法:
unbuffer
命令:unbuffer
是 expect
工具的一部分,可以在不缓冲输出的情况下运行命令。在 Linux 系统中,可以使用以下命令安装 expect
工具:sudo apt-get install expect
然后,可以使用以下命令运行程序,以便在不缓冲 stdout 和 stderr 的情况下记录输出:
unbuffer command | tee output.log
script
命令:script
命令可以将终端会话记录到文件中,包括所有未缓冲的输出。在 Linux 系统中,可以使用以下命令启动 script
命令:script output.log
然后,运行程序并在程序完成后退出 script
命令:
command
exit
stdbuf
命令:stdbuf
命令可以更改命令的缓冲设置,以便在不缓冲 stdout 和 stderr 的情况下运行命令。在 Linux 系统中,可以使用以下命令运行程序:stdbuf -oL -eL command | tee output.log
这将使用行缓冲运行命令,并将输出记录到 output.log
文件中。
总之,这些方法都可以在不缓冲 stdout 和 stderr 的情况下记录输出,并且可以根据具体需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云