Skip to main content
edited title
Link
Chris Stryczynski
  • 6.6k
  • 12
  • 57
  • 99

exceptions How to prevent one command from triggering ERR trap?

Source Link
masgo
  • 282
  • 3
  • 10

exceptions to ERR trap

I am using an ERR trap to catch any error in my bash script and output what happened to log. (similar to this question: Trap, ERR, and echoing the error line ) It works as expected. The only problem is, that at some point in my script an exitcode !=0 is expected to happen. How can I make the trap not trigger in this situation?

Here is some code:

err_report() {
    echo "errexit on line $(caller)" | tee -a $LOGFILE 1>&2
}

trap err_report ERR

Then later in the script:

<some command which occasionally will return a non-zero exit code>

if [ $? -eq 0 ]; then
    <handle stuff>
fi

Everytime the command returns non-zero my trap is triggered. Can I avoid this only for this part of the code?

I checked this question: Correct behavior of EXIT and ERR traps when using `set -eu` but I am not really getting how to apply it to my case - if at all aplicable.