エンディングを持つ関数を使用する方法はありますか?

エンディングを持つ関数を使用する方法はありますか?

たとえば、コマンドにエンディングを追加すると、エンディングが表示されます。

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はトラップを呼び出す前に初期コマンドについて文句を言います。

関連情報