v0.11.5
"set -e" will capture when a line of code fails. However, for a pipeline such as "false | true", it will only handle the exit code of the last command. In this case, the exit code will always be 0. "set -o pipefail" will ensure that any failure in the pipeline results in the whole line failing, which will then be handled correctly by "set -e" For example: $ set +o pipefail ; false | true ; echo $? 0 $ set -o pipefail ; false | true ; echo $? 1