Я пытаюсь выполнить более сложную функцию, которая создает строку PROMPT в ZSH, и в нормальных условиях она работает. Однако, поскольку у меня есть следующий TRAPINT для печати «^ C» при отправке SIGINT в приглашении, он не работает (он не вызывает мою функцию).
.zshrc
TRAPINT() {
print -n "^C"
return $(( 128 + $1 ))
}
my_prompt_function() {
echo '>'
}
setopt PROMPT_SUBST
PROMPT='$(my_prompt_function)'
Однако, если я нажимаю ^ C в приглашении, он просто зависает:
>
>^C
# ...hangs here until I press <Enter>
Как мне сказать изнутри TRAPINT, что я в приглашении, а не в работающей программе, чтобы я не мог вернуть ошибку?