gpt4 book ai didi

linux - 如何在全局范围内捕获 bash 中的 on_error?

转载 作者:IT王子 更新时间:2023-10-29 01:04:51 29 4
gpt4 key购买 nike

Bash 中的 on_error 陷阱似乎只在定义它的函数范围内起作用。例如运行这个脚本

#!/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

有没有办法在全局范围内捕获 on_error,这样我就不必在每个函数中单独捕获它了?

最佳答案

默认情况下,ERR 陷阱不会被 shell 函数继承。

引用自 help set:

  -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

在脚本的开头应使其按预期工作。

关于linux - 如何在全局范围内捕获 bash 中的 on_error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776575/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com