У меня есть сценарий bash, который по какой-то причине на моем iMa c, работающем с GNU Bash 3.2.57, который поставляется с Mojave (10.14.5), продолжает вызывать сигналы ERR и обрабатывать их по сигналу перехватывает даже когда генерируемая ею команда eval используется в условии:
trap 'exit $?' ERR
if ! eval false; then
echo THIS NEVER SHOWS
fi
На linux машинах это выполняется должным образом, и я верю также на некоторых других компьютерах Mac (хотя я нашел по крайней мере еще один, где это не). Кажется, единственный способ избежать - отключить ловушку и включить ее снова. Удаление 'eval' также работает, но в моем собственном сценарии это было бы непросто сделать.