更改/编辑鞭尾仪表的文本

更改/编辑鞭尾仪表的文本

我知道我可以使用以下命令来改变鞭尾--gauge的进度:

{
    for ((i = 0 ; i <= 100 ; i+=20)); do
        sleep 1
        echo $i
    done
} | whiptail --gauge "Please wait while installing" 6 60 0

但我想知道是否可以编辑/修改鞭尾框的文本(因此将文本更改Please wait while installing为其他内容。

我当前的解决方案是打开一个新的鞭尾盒,但旧的关闭和新的打开之间有明显的闪烁。如果您无法更新鞭尾框的文本,是否可以减少/消除这种闪烁?

答案1

尝试这个:

#!/bin/bash

msgs=( "Downloading" "Verifying" "Unpacking" "Almost Done" "Done" )

for i in {1..5}; do
  sleep 1
  echo XXX
  echo $(( i * 20 ))
  echo ${msgs[i-1]}
  echo XXX
done |whiptail --gauge "Please wait while installing" 6 60 0

答案2

闪烁来自 (a) 切换到终端中的备用/正常屏幕以及 (b) 清除显示。

您可以通过选择缺少用于在正常/备用屏幕之间切换的控制序列的终端描述来消除第一部分。通常这些是终端描述中的smcup和功能,所以......rmcup

infocmp >foo
vi
...remove the assignments to `rmcup` and `smcup`
tic foo
...with ncurses, that likely creates an entry in `$HOME/.terminfo`

dialog通过选择性地抑制这些功能来处理这个问题(即--keep-tite);whiptail对备用屏幕一无所知。

进一步阅读:

相关内容