我会在bash脚本中有一个很大的try/catch之类的东西(如果出现问题,我想触发一个URL)。像这样:

  • 执行任务1
  • 执行任务2
  • ...
  • 执行任务99
  • 如果此任务中的任何一个失败,则停止脚本(如果任务4失败,则不执行任务> = 5),然后触发URL(使用curl或其他命令)

  • 我知道set -e存在,但是它只是停止了脚本(完成了一半的工作)。也许trap带有某些内容,但我不了解我对此的了解。 在这种情况下,有没有简单的例子?

    我的问题显然不是关于触发URL,而是如何捕获错误然后运行脚本的另一部分。

    最佳答案

    使用set -e,如果脚本错误退出,则可以捕获ERR伪信号并执行curl语句。如果所有任务都成功,则不会触发ERR陷阱。

    set -e
    trap on_error ERR
    on_error () {
        curl $some_url
    }
    task_1
    task_2
    # ...
    task_last
    

    10-05 20:21
    查看更多