入力から1文字を読み取るbashスクリプトを書いています。私はを使用してそうしread -n 1 -s
ます。-n 1
単一の文字のみを読み取ることです。-s
は「サイレント」モードで、入力した文字は表示されません。
問題は、現在実行されているコマンドが実行されていない場合read
(bashスクリプトの他のコマンドが実行されている場合)、その文字が端末に表示されることです。
これは、ターミナルでのプログラムの通常の動作です。これを無効にするには、通常、たとえばtermiosライブラリを使用してエコーモードを無効にします。
どうすればbashスクリプトでこれを達成できますか?
私は純粋なbash/Unixコマンドのソリューションを好みます(python、perlなどの他のスクリプト言語は使用しません)。