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