Репликация растущих файлов журнала в режиме, близком к реальному времени, по сети

В мире Unix возврат каретки (в языках программирования обычно кодируется как \r) - это ничем не примечательный управляющий символ. Возврат каретки может находиться внутри строки текста, как и любой другой символ, кроме перевода строки (также называемого newline), который отмечает конец строки.

В частности, в сценарии bash возврат каретки - это обычный символ, составляющий слово, как буквы и цифры. Любой специальный эффект от возврата каретки исходит от терминала, а не от оболочки.

Возврат каретки - это управляющий символ. Когда вы печатаете его на терминале, вместо того, чтобы отобразить глиф, терминал выполняет некоторый специальный эффект. Для возврата каретки специальный эффект заключается в перемещении курсора в начало текущей строки. Таким образом, если вы печатаете строку, содержащую возврат каретки в середине, то эффект заключается в том, что вторая половина строки записывается поверх первой.

Несколько других управляющих символов имеют специальные эффекты: символ backspace перемещает курсор влево на одну позицию. Символ звонка заставляет терминал издать звук или иным образом привлечь внимание пользователя. Символ escape запускает последовательность escape, которая может иметь всевозможные специальные эффекты.

Если вы отображаете недоверенный вывод, вам необходимо оттирать или экранировать управляющие символы. Не только возврат каретки, но и некоторые другие, в частности, символ escape, который может вызвать всевозможные плохие эффекты. Смотрите Может ли "cat-ing" файла быть потенциальным риском безопасности? и Как избежать атак управляющей последовательности в терминалах? для получения дополнительной информации по этой теме.

1
29.11.2015, 15:53
0 ответов

Теги

Похожие вопросы