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
ksh93
PROMPT_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
...