Tente isto:
#!/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
Eu sei que posso mudar o progresso de um wiptail --gauge usando algo como:
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Please wait while installing" 6 60 0
Mas eu estou querendo saber se é possível editar / modificar o texto da caixa whiptail (então mude o texto Please wait while installing
para outra coisa.
Minha solução atual é abrir uma nova caixa whiptail, mas há uma cintilação perceptível entre o antigo fechando e o novo abrindo. Se você não pode atualizar o texto de uma caixa whiptail, é possível reduzir / remover essa cintilação?
O piscar de olhos vem de (a) alternar para / das telas alternativas / normais no terminal e (b) de limpar a exibição.
Você pode eliminar a primeira parte escolhendo uma descrição do terminal sem as seqüências de controle usadas para alternar entre telas normais / alternativas. Normalmente, esses são os recursos smcup
e rmcup
na descrição do terminal, então ...
infocmp >foo
vi
...remove the assignments to 'rmcup' and 'smcup'
tic foo
...with ncurses, that likely creates an entry in '$HOME/.terminfo'
dialog
trata disso opcionalmente, suprimindo esses recursos (por exemplo, --keep-tite
); whiptail
não sabe nada sobre a tela alternativa.
Leitura adicional: