私は次のスクリプトで変数に何かを読むことができることを知っています。変数=読み取りしかし、変数に値を送信するにはEnterキーを押す必要があります。 Enterキーを押さずにキー押し値を変数に送信するには、またはキーを押したときに反応しないようにするにはどうすればよいですか?
ベストアンサー1
を使用すると、組み込み関数の引数をbash
使用して、改行なしで読み取る文字数を制限できます。-n
read
#!/bin/bash
echo "Ready? [Y/n]: "
read -n 1 y_or_n
echo
case "$y_or_n" in
[Yy]|"")
echo "you said yes"
;;
*)
echo "you said no"
;;
esac
bash
sh
これはasか呼び出すかに関係なく機能しますbash
。
詳細については、help read
またはマンページを参照してください。bash
他のシェルは-n
パラメータをサポートしていない可能性がありますread
。dash
、例えばいいえ。