# 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