打印Apt的进度条

时间:2015-09-17 17:13:02

标签: bash

我遇到了enable a progress bar用于apt和apt-get的方法,出于脚本目的,我试图只打印那个进度条。我没有用grep(grep "Progress:")或tail(tail -1)取得任何成功。这可能吗?我是朝着正确的方向前进的吗?

2 个答案:

答案 0 :(得分:0)

进度条可能不会打印到stdout。

尝试通过2>&1 | grep Progress:

进行转移

答案 1 :(得分:0)

如果我理解你只是想在apt或apt-get代码中找到进度条,那么你可以在以后使用它,那么就不能保证它被命名为Progress:,或者包含Progress:的提示符甚至在您正在搜索的脚本中。它可能来自另一个文件sourced

您可以尝试在vimkwritejot等编辑器中打开脚本,并在脚本中查看调用仪表的位置并从那里开始。没有人知道它是否会在scalemeterpercent等下...

在没有找到任何东西的情况下,你可以随时使用简单的东西。网上有很多可用的。例如:

#!/bin/bash

## string of characters for meter (60 - good for 120 char width)
str='▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒'

tput civis                  # make cursor invisible

for i in `seq 1 100`; do    # for 1 to 100, save cursor, restore, output, restore
    printf "\033[s\033[u Progress: %s %3d %% \033[u" "${str:0:$(((i+1)/2))}" "$i"
    sleep 0.1               # small delay
done

printf "\033[K"             # clear to end-of-line

tput cnorm                  # restore cursor to normal

exit 0