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

関連情報