Как получить код состояния программы, переданной в диалоговую команду linux
Я пытаюсь использовать линукс dialog
подготовить простой установщик для Ubuntu. Фактическая команда:
dpkg -i package.deb 2>&1 | dialog --programbox "Installing..." 10 100
я хочу dialog
отображать любой вывод, произведенный dpkg
команда, будь то нормальный вывод или сообщение об ошибке, поэтому я перенаправляю stderr в stdout. Это работает.
Проблема в том, что мне нужен код состояния dpkg
Команда после окончания обеих команд. Просто чтобы знать, если dpkg
сделал свою работу или нет. К сожалению, после окончания этих команд я могу получить только код состояния dialog
команда...
Кто-нибудь знает, как получить код состояния dpkg
команда из приведенного выше примера?
1 ответ
Решение
То, что вы ищете, это pipestatus:
dpkg -i ... | dialog ...
echo ${PIPESTATUS[0]} # this contains the exit code of the dpkg command.
Посмотрите на этот пример:
$ false | true | false | true
$ echo ${PIPESTATUS[@]}
1 0 1 0