首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不缓冲stdout和stderr的情况下记录输出

在不缓冲 stdout 和 stderr 的情况下记录输出,可以使用以下方法:

  1. 使用 unbuffer 命令:unbufferexpect 工具的一部分,可以在不缓冲输出的情况下运行命令。在 Linux 系统中,可以使用以下命令安装 expect 工具:
代码语言:txt
复制
sudo apt-get install expect

然后,可以使用以下命令运行程序,以便在不缓冲 stdout 和 stderr 的情况下记录输出:

代码语言:txt
复制
unbuffer command | tee output.log
  1. 使用 script 命令:script 命令可以将终端会话记录到文件中,包括所有未缓冲的输出。在 Linux 系统中,可以使用以下命令启动 script 命令:
代码语言:txt
复制
script output.log

然后,运行程序并在程序完成后退出 script 命令:

代码语言:txt
复制
command
exit
  1. 使用 stdbuf 命令:stdbuf 命令可以更改命令的缓冲设置,以便在不缓冲 stdout 和 stderr 的情况下运行命令。在 Linux 系统中,可以使用以下命令运行程序:
代码语言:txt
复制
stdbuf -oL -eL command | tee output.log

这将使用行缓冲运行命令,并将输出记录到 output.log 文件中。

总之,这些方法都可以在不缓冲 stdout 和 stderr 的情况下记录输出,并且可以根据具体需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券