Tee抑制Shell脚本中的进度条

时间:2014-07-25 21:36:29

标签: shell tee

我尝试使用tee在整个表单中记录脚本。部分脚本涉及下载具有进度条的文件以跟踪下载的百分比,并且我注意到在使用tee记录整个脚本后终端上不再出现此进度条。

是否有解决方法可以让进度条再次显示在终端上?

1 个答案:

答案 0 :(得分:3)

通常,具有进度条等内容的精心编写的程序在写入FIFO(或更一般地,没有关联的TTY的FD)时会抑制此类交互式内容,以使其日志更易于阅读或解析,是为什么管道到tee具有效果的原因。 (对于进度条使用stderr而不是stdout的程序可能更耐用,仅当stderr是非TTY显示时才禁用该栏。)

如果您想假装有TTY,EmPTY等工具可以做到这一点。但是,这意味着所有与进度条相关的错误将最终出现在您的日志文件中,这会使其既大又难以阅读或解析。

不幸的是,如果您正在运行的软件被明确写入以允许这样做,那么您只能两种方式(TTY的进度条,包括stder到文件的非条形内容),如果如初。