このようなスクリプトを実行すると
read -n 1 -p 'Enter first variable: ' var1
if echo "${var1}" | grep -iq "^y"
then
echo "okay"
else
echo "not okay"
fi
sleep 2
read -n 1 -p 'Enter second variable: ' var2
if echo "${var2}" | grep -iq "^y"
then
echo "okay"
else
echo "not okay"
fi
このコードを実行して2秒以内にクリックすると、バッファyに保存され、次に渡されるため、ユーザーに入力を待たずにバッファにキーのみを提供します。そうですね。ここで。nnread
Enter second variable:
n
明確にするために、次の質問で私の問題を別の言葉で説明しますが、質問は1つだけです。
キーのメモリへのバッファリングを停止する方法は?または
バッファの2番目の変数へのユーザー入力を無視する方法var2
?または
read
最初の入力から2秒以内に何を入力しても、2番目の入力read
として使用されないように、1番目と2番目の間のキーボード入力を無効/無視するにはどうすればよいですか?read
ベストアンサー1
tcflush()
保留中の入力をフラッシュするには、POSIX関数を呼び出す必要があります。
たとえば、
perl -MPOSIX -e 'tcflush 0,0'