有没有办法使用带有结尾的函数?

有没有办法使用带有结尾的函数?

例如,向命令添加结尾将显示结尾:

function work* () {
     echo "$1";
}

export -f work*
$ working
ing

答案1

也许像下面这样的东西会为你做:

function work() {
    echo "${1#work}"
}
function err_work() {
    [ "${1#work}" != "$1" ] && work $*
}
trap "err_work \$BASH_COMMAND" ERR

然后在所有命令错误时调用该err_work函数,以发现失败的命令以“work”开头,从而调用该work函数而不结束,并以初始命令行作为参数。

当然,bash 会在调用陷阱之前抱怨初始命令,因此看起来有点难看;也许有办法把它关掉,虽然我还没有找到

相关内容