Alterar / editar texto do calibre whiptail

3

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?

    
por user2370460 28.05.2016 / 15:04

2 respostas

3

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
    
por 01.06.2016 / 23:54
1

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:

por 28.05.2016 / 15:16