엔딩이 있는 함수를 사용하는 방법이 있나요?

엔딩이 있는 함수를 사용하는 방법이 있나요?

예를 들어, 명령에 엔딩을 추가하면 엔딩이 표시됩니다.

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는 트랩을 호출하기 전에 초기 명령에 대해 불평하므로 약간 보기 흉해 보이지만 아직 찾지는 못했지만 이를 끌 수 있는 방법이 있을 수 있습니다.

관련 정보