在bash脚本中发生错误时触发函数

在bash脚本中发生错误时触发函数,bash,shell,error-handling,Bash,Shell,Error Handling,当bash中的命令返回退出代码1时,如何触发函数?我知道顶部的set-e只会使我的代码终止,但我想先调用这个函数。如果代码运行正常,我希望它在不调用函数的情况下正常退出。我不想在每行之后都进行$?检查。我相信有一种简单的方法可以做到这一点,但我对bash脚本还不熟悉,所以我不知道如何使用它。在错误伪信号上设置陷阱: set -e error_handler () { # do stuff here } trap error_handler ERR 因此,无论何时从失败的命令返回1退出

当bash中的命令返回退出代码1时,如何触发函数?我知道顶部的
set-e
只会使我的代码终止,但我想先调用这个函数。如果代码运行正常,我希望它在不调用函数的情况下正常退出。我不想在每行之后都进行
$?
检查。我相信有一种简单的方法可以做到这一点,但我对bash脚本还不熟悉,所以我不知道如何使用它。

错误
伪信号上设置陷阱:

set -e
error_handler () {
    # do stuff here
}

trap error_handler ERR

因此,无论何时从失败的命令返回1退出状态,ERR伪信号都会被触发?几乎是任何时候。有一些例外是有意义的(例如,如果失败的命令不是
&
|
列表中的最后一个命令)。