Я нашел echo -n $'\e]0;Hello World\a' в сценарии оболочки, который является частью базы кода, над которой я работаю. Что именно это делает? Это, конечно, не отражает ничего видимого.
Обратите внимание, я использую Ubuntu 12.04.5.
В XTerm (или во всем, что его эмулирует), он устанавливает заголовок окна в "Hello World". \e] - управляющий код ASNI для "команды операционной системы" (OSC), который, по сути, означает, что операционная система должна определить, что она означает; в XTerm <OSC>0;text<bel> используется для установки заголовка окна.
См. Википедию и список последовательности XTerm Эдварда Моя (найдите раздел "Элементы управления операционной системой").
-n предотвращает повторение новой строки в конце.$' - это команда Bash, которая заменяет символы обратной косой черты в строке в соответствии со стандартом ANSI C. Больше информации\e = ESCape.\e]0; команда для установки заголовка окна, в данном случае для установки "Hello World"\e]0; не является допустимым кодом ANSI, чтобы получить "нормальное отображение", оно должно быть \e[0m .
Как указано в тексте по ссылке Ƭᴇcʜιᴇ007, вы можете объединить несколько из них в одной последовательности:
$ echo -en "\e[0;31;7m TEST \e[0m" TEST $ _
Этот TEST будет обратный красный
Обратите внимание, что -e требуется для анализа escape-последовательности. -n заставляет эхо не печатать (CR+)LF в конце.
Еще лучше использовать коды terminfo с помощью команды tput - man 5 terminfo техническая, но, вероятно, довольно полная.
Почему тпут? Поскольку терминалы не всегда являются ANSI, terminfo пытается "исправить" это, предоставляя единый интерфейс для максимально возможного количества терминалов.
... поэтому echo "$(tput sgr0)" - это то же самое, что echo -e "\e[0m" - если у вас есть терминал ANSI.