【发布时间】:2015-03-30 13:53:31
【问题描述】:
脚本test.sh:
set -euo pipefail
function _trap_ext
{
echo '_trap_ext'
}
function _trap_error
{
echo '_trap_error'
}
trap "_trap_ext" EXIT
trap "_trap_error" ERR
readonly foo='bar'
foo='bar'
echo 'foobar'
输出:
./test.sh: line 14: foo: readonly variable
_trap_ext
由于错误(-e 选项),脚本在第 14 行终止,但未调用 _trap_error 函数。为什么不呢?
GNU bash,版本 4.1.2(1)-release (x86_64-unknown-linux-gnu)、4.2.45(1)-release (i586-suse-linux-gnu)
【问题讨论】:
-
FWIW 我在 4.3.33 中没有这个错误,但我也没有在 change log 中看到任何明显表明它已修复的内容。