Linux 如何在bash中全局捕获_错误?
Bash中的trap似乎只在其定义的函数范围内工作。例如,运行这个脚本Linux 如何在bash中全局捕获_错误?,linux,bash,shell,error-handling,bash-trap,Linux,Bash,Shell,Error Handling,Bash Trap,Bash中的trap似乎只在其定义的函数范围内工作。例如,运行这个脚本 #!/bin/bash on_error() { echo 'on_error' } f() { false echo 'function f' } g() { trap on_error ERR echo 'function g' false f } g 产生: function g on_error function f 是否有一种全局捕获错误的方法,这
#!/bin/bash
on_error() {
echo 'on_error'
}
f() {
false
echo 'function f'
}
g() {
trap on_error ERR
echo 'function g'
false
f
}
g
产生:
function g
on_error
function f
是否有一种全局捕获
错误的方法,这样我就不必在每个函数中单独捕获它了?默认情况下,shell函数不会继承错误捕获
从帮助集
引用:
-E If set, the ERR trap is inherited by shell functions.
-o option-name
Set the variable corresponding to option-name:
errtrace same as -E
说
set -o errtrace
在脚本开始时,应使其按预期工作。@piotrdorgost结果是,需要设置一个shell选项。