次のコマンドを使用してwigtail --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
追加資料: