2つのコンソール/ X端子を開きます。/dev/tty1
(Linuxコンソール)または/dev/pts/0
(Xターミナル)に接続されているいずれかで、$ stty -echo
(キーボードエコーがオフになっています)、もう一方で実行してください$ stty --file=/dev/tty1 echo
。
それでは、最初の端末に何かを入力してみてください。エコは正しいです。ついにstty
効果が現れました。ただし、Enterキーを押すと-echo
その状態に戻ります。なぜこれですか?永久的な変化は可能ですか?
少なくとも「echo/-echo」では動作しません。 sttyフラグの特定の組み合わせでは機能しません。同じ端末で "$stty --file=" を実行すると永久に影響します。
Zshにはsttyの独自の戦略があります。バラよりこの問題
編集:最初の投稿では、これはbashでは発生しますがダッシュでは発生しないと報告できませんでした。 zshケースへの言及も追加されました。
答え1
シェルは、コマンドラインの編集を支援するためにこれを行います。
bashのreadlineライブラリはターミナルモードを保存/復元します。することができますrl_prep_terminal
そしてrl_deprep_terminal
関数、間接呼び出しedit_and_execute_command
。