私が試したとき:$ stty raw -echo
私のターミナル(OS X 10.6ではBash)。それは文字通りのことを行い、ターミナルがそこでハングするようなものです。次に、マニュアルを検索します。
stty —端末デバイスインターフェイスのオプションを設定する
生(-生)
設定されている場合、端末のモードを変更して、入力または
出力処理を行います。設定されていない場合、端末のモードを、入出力処理を実行する適切な状態に変更します。端末ドライバには単一のRAWビットがないため、rawを設定する前に設定されたフラグを直感することはできません。つまり、rawの設定を解除しても、以前に有効だった設定の一部が元に戻らない場合があります。端末をraw状態に設定してから正確に復元するには、次のシェルコードをお勧めします。save_state=$(stty -g) stty raw ... stty "$save_state"
エコー(-エコー)
入力したすべての文字をエコーバックします(エコーバックしません)。
だから、ターミナルをrawモードにしてから、私が入力したものをそのまま返すのですか?誰かがこのコマンドの機能を説明してもらえますか?そして、引数にダッシュがあるときの違いは何ですか? raw
および-raw
?それらは同じ意味ですか?これを学ぶことができるリソースはありますか?
まず、ダッシュは設定を「無効にする」ことを意味します。だからこれはエコーを有効にします:
stty echo
これはそれを無効にします:
stty -echo
無効にすると、タイピングはエコーバックされません。そのため、ターミナルがハングしているように見えます。 stty -echo
を試してから、ls
と入力してReturnキーを押します。ls
の出力が表示されます。
raw
設定は、入力と出力が処理されず、そのまま送信されることを意味します。処理には、特定の文字を無視する、文字を他の文字に変換する、割り込み信号を許可するなどがあります。たとえば、stty raw
では、Ctrl-Cを押してプロセスを終了することはできません。