2012-04-04 2 views
0

Даже не знаю, как это объяснить, но я подключаюсь к удаленному компьютеру и выполняю команду, которая выводит различные вещи на stdout в течение примерно 10 минут. (В основном я экспериментирую на инструменте). Через некоторое время во время выполнения английские символы, которые выводятся, странно меняются на символы, как показано ниже, и остаются такими же, как и после завершения выполнения. Ниже я набираю эхо «какой ад» в командной строке, за которым следует результат. Этого не происходит, если я не использую ssh. Что происходит?Самая странная ошибка в Unix

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

Выполните: ** перезагрузите ** в командной строке, когда это произойдет, и проверьте, не устраняет проблему. – karlphillip

+0

К сожалению, это не так. – Cemre

ответ

3

В целом, небезопасно выводить произвольный текст, который может включать двоичные данные в ваш терминал. Он может включать терминальные экраны и тому подобное.

Вы можете добавить это к трубопроводу, чтобы удалить все, кроме печатаемых символов ASCII:

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

Ваш терминал не только отображать текст, среди прочего, он реагирует на различные управляющие последовательности, что влияет на настройки терминала, которые могут изменить шрифт, набор символов, размер и другие вещи.

Когда вы выводите двоичные данные, преднамеренные или как следствие некоторых ошибок (например, распечатывая неинициализированный массив), некоторые из этих двоичных данных являются специальными кодами, которые интерпретирует терминал.

+0

Да, выход - это в основном двоичные данные, так как это инструмент низкого уровня, поэтому я думаю, что это определенно так. Можно ли прекратить мой терминал реагировать на этот вид вывода? (в OS X) – Cemre

2

Еще одна уловка, чтобы попытаться это echoCtrl-VCtrl-O. Символ^O смещается из альтернативного набора символов для терминалов типа VT100.

Если это не сработает (и все остальные ответы не работают), закройте терминал и снова подключите его.

+0

А это снова отлично отразилось! Я использую OS X, можно ли каким-то образом изменить стиль моего терминала? – Cemre

+2

Нет, терминал VT100-совместим, и я не думаю, что есть другие варианты. Просто не отправляйте двоичные данные непосредственно на ваш терминал. Я часто пропускаю меньше ('| less'), который переформатирует управляющие символы на что-то более читаемое. –

Смежные вопросы