如何增加百分比

时间:2015-04-05 04:09:53

标签: bash dialog gauge

我有以下脚本,它有效,但我不知道它是如何工作的,

计量器使用任何作为包含百分比的变量的神奇之处是什么?

#!/bin/bash -x
cnt="`rpm -qa | wc -l`"
pct="`echo \"100/$cnt\" | bc -l`"
whatever=0
counter=0


for file in `rpm -qa`; do
    counter=$((counter+1))
    whatever=`echo $whatever+$pct | bc -l`
    echo $whatever | cut -d"." -f1
    sleep 0.1
    echo "XXX"
    echo Paquete $counter:
    echo  $file: $(rpm -V $file)
    echo "XXX"
done | dialog --backtitle "Verificando RPMs" --title "Progreso" --gauge "Procesando RPM's ..." 15 70 0

1 个答案:

答案 0 :(得分:1)

没有魔力。 for循环显式地将$whatever(在小数点处截断)写入dialog的stdin,dialog使用从stdin读取的整数流设置仪表位置。

for循环还会更改指标的文字,方法是在XXX个标记之间输出新文字。

引自man dialog(关于--gauge的部分):

  

仪表盒显示盒子底部的仪表。仪表显示百分比。从标准输入读取新百分比,每行一个整数。仪表会更新以反映每个新百分比。如果标准输入读取字符串" XXX",则后面的第一行被视为整数百分比,然后是后续行直到另一行" XXX"用于新提示。当标准输入达到EOF时,仪表退出。