我有一组 sh 脚本:
Main.sh which calls - parent folder
Sub-Main.sh which calls - child folder
Sub-Sub-Main.sh - grandchild folder
这是 Ubuntu 上的安装程序。我目前没有错误处理机制。我想建立一种机制,同时每个脚本中的每个命令都在执行并返回不同于 0 的退出代码 - 发送失败的行并向我发送电子邮件。类似于:'set -e',但有一个函数在它发生时被调用并通过电子邮件向我发送信息。
我在 trap.sh 文件中尝试了这样的陷阱:
trap.sh:
function exit_handler ()
{
Getting info and send email
}
trap exit_handler ERR
在我制作的每个脚本中:
source '/folder/to/trapfile/trap.sh'
我像这样运行它:
sudo bash Main.sh
我从 Main.sh 调用:
cd /SubMainFolder
./Sub-Main.sh
等等。
但它不工作。它不会进入陷阱。任何人都可以用一个例子来建议如何做到这一点,以及一个好的陷阱方法来发送带有错误、脚本名称和行失败的电子邮件吗?也许我没有很好地调用嵌套脚本?也许我必须在每个脚本的末尾加上“return 0”?
非常感谢