Есть ли какой-нибудь способ пропустить ошибки сценария bash и вернуть ненулевой код выхода при ошибке [: ==: unary operator expected
?
Я искал в Интернете и пытался добавить set -euxo pipefail
, но ни один из этих подходовработать как положено.(Тест на macOS и Linux).
$ ./a.sh
./a.sh: line 4: [: ==: unary operator expected
barfoo
$ echo $?
0
#!/bin/bash
set -euo pipefail
if [ == "foo" ];
then
echo "foobar"
exit 1
fi
echo "barfoo"
Bash печатает [: ==: unary operator expected
и продолжает выполнение остальной части кода и возвращает 0 в конце.Я уже знаю, как решить проблему «ожидаемого унарного оператора», просто любопытно, что мне следует сделать, чтобы скрипт немедленно вышел с ненулевым кодом.
Спасибо за любую помощь.