Я полагаю, что это находится в вашем посте -inst script или вызывается из него.
Соглашение об упаковке Debian состоит в том, чтобы запускать скрипты оболочки post -inst и т. д. с set -e
, которые завершаются с ошибкой при любом незахваченном не-нулевом коде выхода. Вы можете «зафиксировать» статус выхода, например, ||
или &&
, или if
/ elif
, while
или until
. Подробнее см. man bash
(найдите-e.*Exit
).
напр.
ping_count=0
until ping hostname || [ "$ping_count" -gt 5 ]; do
sleep 1 # or whatever
ping_count+=1 # non-posix. won't work with dash.
done
Попробуйте set +e
перед ping (или любой другой командой, которая может вернуть код ошибки, который, как вы знаете, вас не волнует ), а затем вернитесь к set -e
.
ПРИМЕЧАНИЕ. :Я настоятельно не рекомендую просто полностью избавиться от set -e
. Если какая-либо другая программа в сообщении -inst возвращает код ошибки, вы (и тот, кто устанавливает пакет ), действительно хотите знать об этом, и вы хотите dpkg
знать, что установка не удалась..