当 Bash 脚本失败时调用一个脚本

当 Bash 脚本失败时调用一个脚本

我想运行一个脚本,使用 apache 服务器创建并托管一个网站。如果出现任何问题,我必须回滚我所做的所有更改,例如删除创建的文件夹等。

我知道set -e在检测到错误时退出脚本。

但我需要的是运行脚本,比如 rollback.sh,同时检测到错误而不是退出

答案1

在脚本中,您可以使用trap

err_handler () {
   /path/to/error/handling/script.sh
   exit
}

trap err_handler ERR

由于ERR被捕获,如果任何命令以非零退出代码退出,则err_handler函数将运行。

你可以认为set -e这样做:

trap 'exit $?' ERR

相关内容