我知道我可以使用以下命令来改变鞭尾--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
对备用屏幕一无所知。
进一步阅读: