Bash 脚本里的set -e

In a bash script, set -e is an option that instructs bash to immediately exit if any command has a non-zero exit status (which signifies an error in bash).

本质上,这意味着如果出现任何问题(从脚本的角度来看),脚本将在此时停止执行。

#!/bin/bash
set -e

cd /this/directory/does/not/exist
echo "You won't see this"

在此脚本中,cd命令将失败,因为目录不存在。因为脚本有set -e,命令失败后脚本就停止执行cd,所以一直到不到echo命令。

如果没有set -e,脚本将尝试继续运行剩余的命令,而不管任何错误。

Usingset -e有助于编写脚本,尤其是调试,因为它允许您在错误发生时立即捕获和处理错误。但是,请务必注意并非所有非零退出状态都表示错误情况,并且在某些情况下您可能希望脚本继续执行,即使一个命令失败也是如此。