Barra de progresso e saída do Zenity

3

Eu escrevi este pequeno roteiro:

response=$(process ...) | zenity --progress --pulsate
echo $response

Eu quero ler a resposta do processo, seja o que for, e mostrar uma barra de progresso pulsante enquanto isso. O problema é que não leio nenhuma resposta no final. Acho que porque toda a saída do processo anterior é enviada para o zenity.

    
por nunzio13n 04.07.2013 / 14:09

2 respostas

2

Hum, não, isso está errado. Você atribui algo à variável $response e depois canaliza essa atribuição para zenity. Experimente

process | tee /tmp/response.txt | zenity --progress --pulsate --auto-close
response=$( cat /tmp/response.txt )

Dessa forma, a saída será armazenada no arquivo /tmp/response.txt , que você poderá ler posteriormente em uma variável.

    
por January 04.07.2013 / 14:22
1

Eu tive o mesmo problema e não queria criar um arquivo temporário, então minha solução foi:

#!/bin/bash
FIFO=$(mktemp -u)
mkfifo $FIFO
(cat $FIFO | zenity --progress --pulsate --auto-close) &

response=$(process)

echo 'Bye bye' > $FIFO
rm -f $FIFO
    
por Vinicius 15.09.2014 / 23:20

Tags