Назад | Перейти на главную страницу

Bash: запустить исполняемый файл с хорошим статусом выхода

Я хочу запустить исполняемый файл в Linux, и независимо от статуса выхода, который он возвращает, я хочу вернуть хороший статус выхода. (т.е. нет ошибки.)

(Это потому, что я использую sh -ex и я хочу, чтобы сценарий продолжал работать даже в случае сбоя одной (конкретной) команды.)

Попробуйте:

command || true

Из man bash:

Оболочка не завершает работу, если команда, которая завершилась ошибкой, является частью списка команд сразу после ключевого слова while или until, частью теста, следующей за зарезервированными словами if или elif, частью любой команды, выполняемой в списке && или ⎪⎪, кроме команда, следующая за финальным && или ⎪⎪, любой командой в конвейере, кроме последней, или если возвращаемое значение команды инвертируется с помощью!.

Пытаться (executable ; exit 0)или, в качестве альтернативы, оберните его в сценарий оболочки, который всегда выходит из 0.