2012-04-04 7 views
0

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

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

これが発生したときにコマンドラインで**リセット**を実行し、問題が解決したかどうかを確認します。 – karlphillip

+0

残念ながらそれはありません。 – Cemre

答えて

3

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

あなたは、印刷可能なASCII文字以外のすべてを削除するためにパイプラインにこれ​​を追加することができますしようとする

somecommand | tr -cd '\11\12\15\40-\176' 
2

あなたの端末はちょうどそれがフォント、文字セット、サイズ、および他のものを変更することができ、端末の設定を、影響を与える様々なエスケープシーケンスに応答し、他のものの間で、テキストは表示されません。

2進数のデータを出力するときには、熟考するか、いくつかのバグ(例えば、初期化されていない配列を出力するなど)の結果として、そのバイナリデータの一部が端末で解釈される特別なコードになります。

+0

はい、出力はほとんどがバイナリデータです。低レベルのツールなので、これは間違いなくそうです。このような出力に応答する端末を停止することは可能ですか? (OS Xの) – Cemre

2

もう一つのトリックはechoはCtrl-VはCtrl-Oです。^O文字は、VT100スタイルの端末の代替文字セットからシフトします。

これでうまくいかない場合(および他のすべての回答が機能しない場合)は、端末を閉じてから再接続してください。

+0

これはもう正常に戻りました!私はOS Xを使用していますが、どうやら端末のスタイルを変更することは可能ですか? – Cemre

+2

いいえ、ターミナルはVT100と互換性があり、他のオプションはないと思います。バイナリデータを端末に直接送信しないでください。私はしばしばless( '| less')をパイプして、制御文字をより読みやすいものに再フォーマットします。 –

関連する問題