3

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

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

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

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

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

1 ответ1

3

То, что вы ищете, это 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .