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
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?
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
Tags dialog linux status bash-scripting code