stty -a
onと入力すると、予想される他のフラグがpts/0
表示されます。icanon
ただし、stty
現在ある(bash)シェルの制御端末ではなく端末で実行した場合、要約すると次のようになります-icanon
。
stty -a < /dev/pts/0
からpts/0
、与えられたicanon
、stty -a
stty -a < /dev/pts/0
からpts/1
、与えられた-icanon
stty -a < /dev/pts/1
からpts/1
、与えられたicanon
、stty -a
stty -a < /dev/pts/1
からpts/0
、与えられた-icanon
どうなりますか?
答え1
エンドデバイスの回線ポリシーが標準モードではありません。シェルのコマンドラインエディタが有効になっている場合。 GNU Readline、ZLE、editline、またはその他のコマンドライン編集ライブラリがそのエディタを積極的に表示すると、シェルはターミナル行ルールを非正規モードに切り替えました。考えてみてください。ラインエディタには制御文字(特殊文字を含む)の固有の解釈があり、各文字が入力されるとすぐに応答するため、端末I / Oを他の方法で使用することはできません。
ラインエディタがラインを完了するたびに標準モードを再起動します。最初の疑似端末に移動し、しばらく実行される外部コマンド(たとえば)を実行しますsleep
。それから別の疑似端末で報告された内容を表示します。