Zsh: 만일의 경우를 대비해 줄 바꿈 테스트

Zsh: 만일의 경우를 대비해 줄 바꿈 테스트
# user input a here
vared -p "input something" -c a
case $a { ([y|'\n']) echo something;; }

작동하지 않습니다. 누구든지 통찰력을 제공할 수 있습니까?

y사용자 입력을 테스트하고 또는 개행 문자가 포함된 경우 enter무언가를 에코하려고 합니다 .

편집하다:

set | grep IFS
IFS=$' \t\n\C-@'

답변1

사용자 입력을 얻는 방법을 설명하지 않았습니다.

그리고 read:

read -k 'answer?Are you OK? '
case $answer in
  (y | Y | $'\n') echo 1;;
  # or ([$'yY\n']) echo 1;;
  (*)         echo 2;;
esac

그러나 or를 read사용하지 않고 사용자가 답을 입력하지 않고 누르는 것을 감지하려면 null을 테스트해야 합니다.-kvaredEnter

answer=; vared -p 'Are you OK? ' answer
case $answer in
  (y | Y | "") echo 1;;
  # or ([yY] | "") echo 1;;
  (*)         echo 2;;
esac

또는 y(사용자가 다음과 같이 BackspaceN말해야 하지만)아니요):

answer=y; vared -p 'Are you OK? ' answer
case $answer in
  (y | Y) echo 1;;
  (*)     echo 2;;
esac

관련 정보