私が仕事で使用しているアプリケーションの1つは、bashにねじ込まれることがあるため、自分の入力が表示されなくなります。つまり.
$ echo foo
foo
$
なる
$ foo $
誤ってstty -echo
を実行しようとしましたが、問題が悪化し、コマンドの受け入れがすべて停止し、入力が何らかの状態になり、改行するたびに>
が表示されます。
私は何をすべきでしたか?
このようなものに対する通常の治療法は
stty sane
stty -echo
は、入力のエコーをオフにするだけで、これをさらに悪化させるべきではありませんでした。
リターンと言うと、>
が表示されるだけです。これは、次の行の継続を引き起こしている何かを開始したことを意味します。 echo '
は、終了する'
が文字列を終了するのを待っているため、これを実行します。 if something
など、他の原因もこれを引き起こします。 then ... fi
の部分を待っています。
たぶんヒットしたでしょう ctrl-c その段階で、端末がめちゃくちゃになって割り込みも生成されない場合を除いて、コマンドの残りを待って停止します。
@wurtelの回答(特に>
の問題について考えられる説明)に加えて、stty echo
はstty -echo
の反対なので、それを使用することができます。通常はncursesパッケージに付属するreset
を使用することもできます。