7

入力から1文字を読み取るbashスクリプトを書いています。私はを使用してそうしread -n 1 -sます。-n 1単一の文字のみを読み取ることです。-sは「サイレント」モードで、入力した文字は表示されません。

問題は、現在実行されているコマンドが実行されていない場合read(bashスクリプトの他のコマンドが実行されている場合)、その文字が端末に表示されることです。

これは、ターミナルでのプログラムの通常の動作です。これを無効にするには、通常、たとえばtermiosライブラリを使用してエコーモードを無効にします。

どうすればbashスクリプトでこれを達成できますか?

私は純粋なbash/Unixコマンドのソリューションを好みます(python、perlなどの他のスクリプト言語は使用しません)。

4

1 に答える 1

16
stty -echo
# Anything they type won't output here
stty echo
# Now it will
于 2012-06-11T20:25:54.310 に答える