Я знаю, что для печати цветного текста с использованием эха, например красного цвета, используется код: echo -e "\e[1;31m This is red text \e[0m"
и я знаю, что в этом примере 31 - это код красного цвета, а число других цветов:
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
а для фоновых цветов число от 40 до 47
Мой вопрос заключается в следующем: что именно \e
и [
и m
(после 31) точно означает здесь?
Я прочитал в справочной странице, что это побег, но я не понял, что это значит.
shell-script
scripting
echo
M0εiπ
источник
источник
echo "She said \"Hi\""
касается этого случая (ваш вопрос), вам придется ждать лучшего ответа.Ответы:
Они являются частью «элементов последовательности» escape-последовательностей ANSI, также известных как последовательности ECMA-48 CSI, которые были первоначально приняты в 1976 году.
В частности,
[
« Представитель контрольной последовательности »Введите
man console_codes
практически любой * nix дистрибутив, чтобы увидеть коды и некоторые документы.источник
man 4 console_code
неman console_code
: В моем UbuntuЧтобы быть точным цветовые коды определены ниже
Так что, в основном, разные терминалы интерпретируют цветовые коды, и вы подписываете свой текст внутри этих элементов. Это странный способ заставить терминал понять, что вы имеете в виду (например, HexCodes или Binary ..)
источник
Я нашел хорошее объяснение здесь (по крайней мере, хорошо для меня :-) ). Я не уверен, будет ли это полезно для вас.
Это управляющие коды для установки цветовых режимов в терминале. Разве что при печати обычными символами они выглядят так.
источник
\e
является сокращением для Escape персонажа.<ESC>[
иm
являются маркерами в начале и в конце последовательности управления цветом ANSI, которые являются подмножеством терминального управления ANSI секвенировали. Большинство из них начинаются с<ESC>[
цифры, за которой следует число, за которым следует буква, указывающая, какая функция реализуется (например, переместить курсор в строку; очистить до конца строки, вернуть курсор в сохраненное место и т. Д.).источник