3

Я нашел пару документов, в которых перечислены некоторые возможности приглашения bash с непечатными символами (например, \E [33; 44 м для печати желтого текста на синем фоне), но везде, где я смотрю, я нахожу только очень конкретные примеры, и нет реального объяснения этих специальных символов или полный список всего, что возможно с этими символами.

Иногда в примерах используется префикс \033 [, а иногда это \E [, есть ли разница между ними?

Пока я знаю, что возможно следующее:

Используйте цвет: \E [33; 44 м
Переместите курсор в определенное место (10-я строка, 20-й столбец): \033 [10; 20H
Скрыть курсор: \E [?25л
Показать курсор: \E [?25h

Есть ли другие магические комбинации? Где я могу найти полный список этих специальных символов и как их использовать?

1 ответ1

5

Иногда в примерах используется префикс \033 [, а иногда это \E [, есть ли разница между ними?

Первый уровень: \ - это «escape-символ» в C и других языках программирования. \033 и \x1B - восьмеричные и шестнадцатеричные escape-символы в стиле C для управляющего символа ASCII ESC (шестнадцатеричный байт 0x1B). \e и \E тоже являются частью C и также обозначают один и тот же символ ESC , но они не являются общими.

Независимо от того, что из вышеперечисленного вы используете, будет вставлен тот же ESC , но \e короче, чем \033 .

Есть ли другие магические комбинации? Где я могу найти полный список этих специальных символов и как их использовать?

Второй уровень: Точно так же ASCII ESC является префиксом кодов выхода ANSI, используемых терминалом VT100 и его потомками. Доступные коды предназначены не для bash , а для конкретного эмулятора терминала, который вы используете. Вероятно, все поддерживают коды, определенные в ECMA-48 , но это только небольшое подмножество.

Страница управляющих последовательностей Xterm содержит обширный список, но вам нужно искать документацию для всего, что вы используете, будь то gnome-terminal , Konsole, rxvt или что-то еще. Некоторые специфичны для консоли Linux (tty).

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