0

これを説明する方法さえわかりませんが、リモートコンピューターに接続し、さまざまなものをstdoutに出力するコマンドを約10分間実行します。(私は基本的にツールでいくつかの実験を行っています)。実行中しばらくすると、出力中の英字が下のような変な文字に変わり、実行終了後もそのままです。以下は、コマンド ラインに echo "what the hell" と入力し、続いて結果の出力を入力したものです。ssh を使用しない限り、これは発生しません。一体何が起こっているのですか?

°┤⎽␋⎺┼02% ␊␌␤⎺ "┬␤▒├ ├␤␊ ␤␊┌┌" 
 ┬␤▒├ ├␤␊ ␤␊┌┌
°┤⎽␋⎺┼02% 
4

3 に答える 3

3

一般に、バイナリ データを含む可能性のある任意のテキストを端末に出力することは安全ではありません。ターミナルエスケープなどが含まれる場合があります。

これをパイプラインに追加して、印刷可能な ASCII 文字以外をすべて削除できます。

somecommand | tr -cd '\11\12\15\40-\176'
于 2012-04-04T01:14:30.927 に答える
2

端末はテキストを表示するだけではありません。とりわけ、端末の設定に影響を与えるさまざまなエスケープ シーケンスに応答し、フォント、文字セット、サイズなどを変更できます。

故意に、または何らかのバグの結果として (たとえば、初期化されていない配列を出力するなど) バイナリ データを出力している場合、そのバイナリ データの一部は、端末が解釈する特別なコードになります。

于 2012-04-04T01:13:38.680 に答える
2

試すもう 1 つのトリックは、 ですechoCtrl-VCtrl-O。^O 文字は、VT100 スタイル端末の代替文字セットからシフトアウトします。

それでもうまくいかない場合 (そして他のすべての回答がうまくいかない場合) は、ターミナルを閉じて再接続してください。

于 2012-04-04T01:15:50.223 に答える