Korn 쉘에는 Bash의 command_not_found_handle과 동일한 기능이 있습니까?

Korn 쉘에는 Bash의 command_not_found_handle과 동일한 기능이 있습니까?

Korn 쉘에는 PROMPT_COMMAND와 동일한 기능이 있습니까?

Bash에서는 단일 입력 단어가 정규 표현식과 일치할 때 매개 변수를 사용하여 함수 호출을 할 수 있습니다. Korn 쉘이 이것을 할 수 있습니까?

ksh88이라고 해보자.

예를 들어 Bash에서는 다음을 수행하여 정규식과 일치하는 단어를 명령줄에 입력하여 함수를 호출할 수 있습니다.

command_not_found_handle()
{

    if [[ $1 =~ ^[A-Z]+\.[0-4]+$ ]]; then
        callFunction "$1"
        return 222;
    else
        printf "command not found: %s\n" "$1" >&2
        return 127
    fi
}

그리고

PROMPT_COMMAND='[[ $? -eq 222 ]] && callFunction'

ksh88에서도 비슷한 일을 할 수 있나요?

답변1

ksh93PROMPT_COMMAND징계 기능을 통해 지원할 수도 있습니다 .dgk).

function PS1.get 
{
    integer exitval=$?
    eval .sh.value=$($PROMPT_COMMAND)'$PS1'
    return $exitval
}

답변2

ksh88이미 bash 방법보다 더 나은 것이 있습니다.

trap라는 특별한 조건이 있습니다 ERR. 그러니 이것을 시도해 보세요:

trap 'echo bla' ERR
false

echo bla그리고 그것이 실행되는 것을 볼 수 있습니다 .

참고: 이것은 다음에서도 작동합니다 bash...

관련 정보