shell之在 Shell 脚本中抑制进度条
我正在尝试使用 tee 以整个形式记录脚本。脚本的一部分涉及下载文件,这些文件具有跟踪下载百分比的进度条,我注意到在使用 tee 记录整个脚本后,这个进度条不再出现在终端上。
是否有解决方法可以让进度条再次显示在终端上?
请您参考如下方法:
通常,在写入 FIFO(或更一般地,写入没有关联 TTY 的 FD)时,带有进度条等内容的编写良好的程序会抑制此类交互式内容,以使它们的日志更易于阅读或解析,这就是管道的原因至 tee
正在发挥它的作用。 (使用 stderr 而不是 stdout 作为其进度条的程序可能更具抵抗力,仅当 stderr 是非 TTY 显示时才禁用进度条)。
如果你想假装拥有 TTY,可以使用诸如 EmPTY 之类的工具。可以做到这一点。然而,这意味着所有与进度条相关的 cruft 最终都会出现在您的日志文件中,这会使它既大又难以阅读或解析。
不幸的是,如果您正在运行的软件明确写入允许这样做,那么您只能以两种方式使用它(TTY 的进度条,包括 stderr 在内的非条内容到文件),如果有的话,这种情况很少发生。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。