Diálogo - Continuar em segundo plano

3

Eu instalei este programa:

link

Agora quero usar este diálogo:

link

dialog --gauge 'Checking permissions' 20 60

Funciona bem, mas o problema é que o script bash não continua até que este diálogo tenha sido fechado (CTRL + C).

Mas quero que meu script de shell continue e mostre o status com o diálogo.

Isso é possível?

EDIT # 1

status="Initializing"    
(echo 1
 sleep 1
 status="Loading"
 echo 30
 sleep 1
 echo 90
 sleep 1
 echo 100
) | dialog --gauge $status 10 40
    
por Michael 03.12.2013 / 21:12

1 resposta

2

Você precisa alimentar as porcentagens para o medidor por meio de entrada padrão. Tente isto para ver como funciona:

for i in $(seq 1 100); do echo $i; sleep 0.1; done | \
  dialog --gauge "Example" 10 50

Assim, no seu caso, apenas faça seu trabalho em um subshell, gerando um número percentual de vez em quando, e canalize-o para dialog . Algo parecido com isto:

(echo 1
 sleep 1
 echo 30
 sleep 1
 echo 90
 sleep 1
 echo 100
) | dialog --gauge "Working hard..." 10 40

(onde cada sleep 1 representa algum trabalho real, é claro ...).

EDIT: Alterando o texto

Para alterar o texto, você emite XXX , um número, depois o novo texto e, em seguida, XXX novamente. Exemplo:

(echo 30
 sleep 1
 echo XXX; echo 60; echo "New text"; echo XXX
 sleep 1
 echo 100
) | dialog --gauge "Working hard..." 10 40

Você precisa ler a página de manual de dialog ; tudo é explicado lá.

    
por 03.12.2013 / 22:48