`stty --file=の効果 `はbashのコンソールに対してのみ一時です。なぜ?

`stty --file=の効果 `はbashのコンソールに対してのみ一時です。なぜ?

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

おすすめ記事