问题的最小示例:
#!/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陷阱并没有被抓住。怎么来了?
set -o functrace
似乎没有达到您的预期。
试试这个:
#! /bin/bash
set -e
errHandler() {
echo "Something went wrong. Exiting now."
exit 1
}
trap 'errHandler' EXIT
pi_process () {
false
echo $?
}
pi_process stuff