bash 退出状态中 -e、-u 和 -o pipefail 的区别

Difference of -e, -u and -o pipefail in bash exit status

正在尝试正确保护 bash 脚本中的非零退出。

-e、-u 和-o pipefail 有什么区别?

-o pipefail 不足以以错误代码退出?

set -e:如果命令以非零状态退出,则立即退出。

set -u: 如果你试图访问一个未定义的变量,那是一个错误。

set -o pipefail:如果管道中的任何命令return是非零​​退出代码,则整个管道的return代码是最后一个失败命令的退出代码。