Como obter o código de status do programa canalizado para o comando linux dialog

2

Estou tentando usar o Linux dialog para preparar um instalador simples para o Ubuntu. O comando atual é:

  dpkg -i package.deb 2>&1 | dialog --programbox "Installing..." 10 100

Eu quero que dialog exiba qualquer saída produzida pelo comando dpkg , seja a saída normal ou a mensagem de erro, portanto, redireciono stderr para stdout. Isso funciona.

O problema é que eu preciso do código de status do comando dpkg após o término dos dois comandos. Só para saber se o dpkg fez o seu trabalho ou não. Infelizmente, depois que esses comandos terminaram, só consigo obter o código de status do comando dialog ...

Alguém sabe como obter o código de status do comando dpkg do exemplo acima?

    
por WRz 22.10.2014 / 10:14

1 resposta

2

O que você pesquisa é o pipestatus :

dpkg -i ... | dialog ...
echo ${PIPESTATUS[0]} # this contains the exit code of the dpkg command.

Veja esse exemplo:

$ false | true | false | true
$ echo ${PIPESTATUS[@]}
1 0 1 0
    
por 22.10.2014 / 12:15