1

В командной строке терминала для OS XI можно ввести echo $'\ec' и ti очистит консоль. Я понятия не имею, почему это работает, хотя. Что это делает?

Я предполагаю, что это будет работать и на других версиях Linux. Может кто-нибудь пролить свет?

3 ответа3

1

Терминал обычно не имеет API как такового, поэтому драйвер терминала прослушивает определенные последовательности символов, отправляемых на терминал, и предпринимает действия на основании полученных последовательностей. Последовательность ^[c вызывает очистку терминала и является лишь одной из многих таких последовательностей.

0

\e - это символ ESC (0x1B). Это известно как «escape-последовательность».

В Интернете есть их полный список для терминала VT100 или ANSI, с которым вы можете ознакомиться, чтобы понять, как они работают.

К вашему сведению, вы можете сделать то же самое с printf "\x1bc\n" или полностью очистить экран, пропустив этот последний \n.

0

Конкретная последовательность отправляется как

ESC c

(escape-символ, за которым следует c). Это происходит с помощью функции аппаратного сброса VT100. На реальном терминале это нарушит вашу связь. Эмуляторы терминала (которые вы, скорее всего, используете) просто переустановят терминал в его состояние по умолчанию, случайно очистив дисплей. Поскольку они обычно эмулируют (имитируют) VT100, подходящим местом для начала чтения является документация для VT100:

Что касается ссылки "vtansi", которая была отмечена в FAQ в течение нескольких лет: Как получить цвет с VT100?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .