【问题标题】:How to display different messages on whiptail progress bar along with progress bar?如何在whiptail进度条上显示不同的消息以及进度条?
【发布时间】:2016-12-06 07:17:23
【问题描述】:

我正在尝试使用“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 安装包时一样 something like this 我怎样才能做到这一点?

【问题讨论】:

    标签: bash shell scripting whiptail


    【解决方案1】:

    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"。 Whittail 使用XXX 字符串来指示对显示的修改。

    【讨论】:

    • 感谢您的回复,但您的脚本似乎没有运行,它卡在零百分比 5-6 秒,然后退出。
    • 您使用的是什么操作系统/版本的whiptail?在我的机器上复制和粘贴这段代码 sn-p 工作正常(whiptail 0.52.18 在 wsl - Ubuntu 16.04 上运行)
    • 我在 RHEL 6 中使用whiptail 版本运行它:whiptail(蝾螈):0.52.11 然后它卡住了,而我在 RHEL 7 中使用whiptail 版本whiptail(蝾螈)进行了验证:0.52.15,在那里完美运行。但我需要它用于 RHEL 6。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多