首先,如果任何命令失败(使用非零代码退出),我们可以立即使用set -e
退出Shell脚本。
但是,如何在条件语句中立即退出呢?例如:
set -xe
_if_error() {
'run a bad command' # should exit immediately for this command does not exist
echo -e "\033[31mUnexpected execution\033[0m"
}
if ! _if_error; then
echo 'ok'
else
echo 'bad'
fi
我希望脚本回显ok
,而不回显红色Unexpected execution
。