Как получить код состояния программы, переданной в диалоговую команду linux

593
WRz

Я пытаюсь использовать Linux dialogдля подготовки простого установщика для Ubuntu. Фактическая команда:

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

Я хочу dialogотобразить любой вывод, произведенный dpkgкомандой, будь то обычный вывод или сообщение об ошибке, поэтому я перенаправляю stderr в stdout. Это работает.

Проблема в том, что мне нужен код состояния dpkgкоманды после завершения обеих команд. Просто чтобы знать, dpkgсделал ли свою работу или нет. К сожалению, после окончания этих команд я могу получить только код состояния dialogкоманды ...

Кто-нибудь знает, как получить код состояния dpkgкоманды из приведенного выше примера?

2

1 ответ на вопрос

2
chaos

What you search is the pipestatus:

dpkg -i ... | dialog ... echo $ # this contains the exit code of the dpkg command. 

See that example:

$ false | true | false | true $ echo $ 1 0 1 0 
Это именно то, что я искал! Спасибо! WRz 9 лет назад 0

Похожие вопросы