Oh and this obviously also affects e.g. set -e: $ set -e $ foo=$(false) => exit $ local foo=$(false) => NO exit In principle that's already clear once it's documented what "local" returns, but it may be a common miss-assumption, so not sure whether it should be specifically mentioned. Thanks, Chris.