Minimal example of the issue:
#!/bin/bash
errHandler() {
echo "Something went wrong. Exiting now."
exit 1
}
trap 'errHandler' ERR INT
pi_process () {
bin/pi $@
echo $?
}
pi_process stuff
bin/pi is a php script, it's exiting with exit code 255 and a fatal error. However the bash trap isn't being caught. How come?
set -o functrace
does not seem to do what you expected.
Try this :
#! /bin/bash
set -e
errHandler() {
echo "Something went wrong. Exiting now."
exit 1
}
trap 'errHandler' EXIT
pi_process () {
false
echo $?
}
pi_process stuff