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

试图正确保护 bash 脚本上的非零退出。

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

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

stack overflow Difference of -e, -u and -o pipefail in bash exit status
原文答案
author avatar

接受的答案

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

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

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


答案: