たとえば、コマンドにエンディングを追加すると、エンディングが表示されます。
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はトラップを呼び出す前に初期コマンドについて文句を言います。