Магия цветов, расположение курсора и блики внутри него Экранирующие коды ANSI . Любая текстовая консоль, способная обрабатывать коды ANSI, может использовать их, просто распечатывая их на консоли (то есть с помощью echo в скрипте bash или функции printf () в C).
Терминалы Unix поддерживают escape-последовательности ANSI, и мир Windows раньше поддерживал их в прежние времена MS-DOS, но поддержка многобайтовых консолей положила этому конец. Больше информации здесь . Однако есть и другие способы печати только последовательностей ANSI , доступные в Windows . Более того, если у вас установлен Cygwin, код обработки ANSI Windows работает так же хорошо, как и на любом терминале Unix.
Многие люди упоминают библиотеку Ncurses, которая является стандартом де-факто для любых текстовых приложений, подобных GUI. Эта библиотека делает, чтобы скрыть все различия между терминалами (разновидности Windows / Unix), чтобы представлять одинаковую информацию как можно более одинаковой для всех платформ, хотя, исходя из собственного опыта, я говорю вам, что это не всегда так (то есть типичные рамки текстового окна изменить, потому что специальные символы доступны не для всех кодировок символов). Аналогом использования ncurses является то, что это полный API, и с ним гораздо сложнее начать, чем просто записать некоторые escape-последовательности ANSI для простых вещей, таких как изменение цвета шрифта, очистка экрана или перемещение курсора назад на случайный положение.
Ради полноты я вставляю пример использования последовательности ANSI в Linux, которая меняет подсказку на синий и показывает дату:
PS1="\[\033[34m\][\$(date +%H%M)][\u@\h:\w]$ "