In a bash script/shell, is there a programmatic way to determine if the set -e flag is active?
I just need a boolean letting me know if it\'s on/off.
You can check the $- variable to see whether the e option is enabled:
[[ $- =~ e ]]
From help set:
The current set of flags may be found in $-.
From help test:
-o OPTION True if the shell option OPTION is enabled.
Thus:
[ -o errexit ]
You can also use the exit code of shopt:
if shopt -qo errexit; then
echo enabled
# do something
fi
$ set -e
$ if grep -q 'errexit' <<<"$SHELLOPTS";then echo "set -e is enabled";else echo "set -e is disabled";fi
set -e is enabled
$ set +e
$ if grep -q 'errexit' <<<"$SHELLOPTS";then echo "set -e is enabled";else echo "set -e is disabled";fi
set -e is disabled