此问题的最小示例:
#!/bin/bash
errHandler() {
echo "Something went wrong. Exiting now."
exit 1
}
trap 'errHandler' ERR INT
pi_process () {
bin/pi $@
echo $?
}
pi_process stuff
bin / pi是一个php脚本,它以退出代码255和致命错误退出。但是,bash陷阱没有被捕获。怎么会来?
为了使陷阱能够处理在函数内部运行的命令,您需要打开functrace。这适用于文件set -o functrace