MacOS bash: почему сигнал ERR срабатывает даже при использовании с eval? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть сценарий 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' также работает, но в моем собственном сценарии это было бы непросто сделать.

1 Ответ

1 голос
/ 24 февраля 2020

Код в вопросе также вызывает ловушку ERR в древней Linux системе, работающей Bash 3.2.25. Этот код устраняет проблему в этой системе:

trap 'exit $?' ERR
if ! (eval false); then
   echo THIS NEVER SHOWS
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...