Каков Position_args в man page

Терминалы управляются управляющими последовательностями, которые отправляются вместе с отображаемыми символьными данными. Вот как, например, echo -e '\ e [34m' сделает текст на многих терминалах синим. Он выводит на терминал некоторые символы - они являются escape-последовательностью, которая устанавливает цвет переднего плана.

Терминал был сбит с толку из-за того, что ему было предложено переключиться на какой-то альтернативный набор символов (и, возможно, еще несколько вещей). Это произошло потому, что / var / log / wtmp содержал escape-последовательности, используемые для переключения наборов символов. С технической точки зрения это не так уж и плохо - все работает именно так, как задумано. (Попробуйте tput smacs , чтобы испортить ваш терминал по запросу; tput rmacs , чтобы изменить этот параметр обратно.)

reset и т. Д. Работают, отправляя управляющие последовательности, сбрасывающие различные параметры по умолчанию. Вот и "починили" терминал.

Уловка head / bin / ls работает, потому что ваш / bin / ls (или, по крайней мере, часть, напечатанная head ) содержит escape-последовательность, изменяющая параметры терминала обратно. Это совсем не переносимо - например, здесь не работает - и, вероятно, выполняет гораздо менее тщательную работу по сбросу настроек по умолчанию, чем reset и т. Д.)

5
31.03.2019, 07:25
6 ответов

Теги

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