Agree, but be aware of subshells, these options don't propagate there.
$ set -eu
$ echo "$(false)"
$ $ set -eu
$ echo "$(false)"
$ #!/bin/bash
set -eu
export SHELLOPTS echo "$(false)"
swallows the exit code from $(false). $ cat /tmp/test.sh
set -euvx
export SHELLOPTS
echo "$(false)"
echo "echo of string with failed subcommand does not kill script"
$(false)
echo "but consuming exit code does"
$ /tmp/test.sh
export SHELLOPTS
+ export SHELLOPTS
echo "$(false)"
false
++ false
+ echo ''
echo "echo of string with failed subcommand does not kill script"
+ echo 'echo of string with failed subcommand does not kill script'
echo of string with failed subcommand does not kill script
$(false)
false
++ falseI mean, I can always just backtick pipe anything that would be convenient but avoid this nonsense.