7

我正在尝试使用“whiptail”向用户显示进度,同时删除一些 RPM。使用

{
 echo 25
 yum remove package_name
 echo 50
 yum remove package_name
 echo 75 
 yum remove package_name
 echo 100
 sleep 1

} | whiptail --gauge "Removing RPM's" 6 60 0*

这是它的样子

我想要的是显示消息“正在删除 package_name”以及进度条,就像当 redhat 安装类似这样的包时, 我该 如何实现?

4

1 回答 1

5

Whiptail 使用一种奇怪的语法来更新仪表文本。看看下面的脚本:

#!/bin/bash
{
    sleep 0.5
    echo -e "XXX\n0\nyum remove package_0... \nXXX"
    sleep 2
    echo -e "XXX\n25\nyum remove package_0... Done.\nXXX"
    sleep 0.5

    echo -e "XXX\n25\nyum remove package_1... \nXXX"
    sleep 2
    echo -e "XXX\n50\nyum remove package_1... Done.\nXXX"
    sleep 0.5

    echo -e "XXX\n50\nyum remove package_2... \nXXX"
    sleep 2
    echo -e "XXX\n75\nyum remove package_2... Done.\nXXX"
    sleep 0.5

    echo -e "XXX\n75\nyum remove package_3... \nXXX"
    sleep 2
    echo -e "XXX\n100\nyum remove package_3... Done.\nXXX"
    sleep 1
} |whiptail --title "Yum Removal" --gauge "Please wait while installing" 6 60 0

这里,关键部分是echo -n "XXX\n<new percent>\n<new_gauge_text>\nXXX"。Whiptail 使用该XXX字符串来指示对显示的修改。

于 2016-12-06T12:29:24.993 回答