我会在bash脚本中有一个像try / catch这样的东西(如果出现问题我想触发一个URL)。像这样:
我知道set -e
存在,但它只是停止了脚本(它完成了半个工作)。也许有trap
的东西,但我不明白我读到的内容。 这个案例有什么简单的例子吗?
我的问题显然不是关于触发URL,而是如何捕获错误然后运行脚本的其他部分。
答案 0 :(得分:3)
trap trap_exit EXIT
trap_exit() {
CODE=$?
if [ $CODE -ne 0 ]; then
echo "Failed! Return code: $CODE"
fi
}
每当脚本结束时(trap_exit
参数),这将执行EXIT
并检查是否有某些内容($?
部分)。
答案 1 :(得分:3)
使用set -e
,如果脚本退出并出现错误,您可以捕获ERR
伪信号并执行curl
语句。如果所有任务都成功,则不会触发ERR
陷阱。
set -e
trap on_error ERR
on_error () {
curl $some_url
}
task_1
task_2
# ...
task_last