# 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을 테스트해야 합니다.-k
vared
Enter
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