Цвет в Bash с использованием ANSI Escape Codes
Полезные ссылки
В Linux терминале (например, Bash) цвет текста и фона управляется с помощью ESC-последовательностей, основанных на ANSI escape codes.
Пример:
echo -e "\033[31mКрасный текст\033[0m"
Объяснение:
- \033[ — управляющая последовательность (ESC).В Bash <Esc> последовательность может начинаться на \e, \033,\x1B.
- 31m — код цвета (в данном случае — красный).
- \e[0m — сброс оформления.
- Последовательность закрывается символом m
- Опция -e у команды echo позволяет парсить escape последовательность.
Таблица стандартных цветов (текст)
Код | Цвет |
---|---|
30 | Черный |
31 | Красный |
32 | Зелёный |
33 | Жёлтый |
34 | Синий |
35 | Фиолетовый |
36 | Голубой |
37 | Белый |
Яркие цвета
Чтобы получить яркий цвет, добавьте 1; перед кодом:
echo -e "\e[1;32mЯрко-зелёный\e[0m"
Цвет фона
echo -e "\033[38;5;15;48;5;21m Белый текст на синем фоне \033[0m"
Код | Цвет фона |
---|---|
40 | Чёрный |
41 | Красный |
42 | Зелёный |
43 | Жёлтый |
44 | Синий |
45 | Фиолетовый |
46 | Голубой |
47 | Белый |
Комбинирование стилей
Пример:
echo -e "\033[1;4;31mЖирный подчёркнутый красный\033[0m"
Код | Стиль |
---|---|
0 | Сброс |
1 | Жирный |
4 | Подчёркнутый |
5 | Мигающий |
Bash-скрипт для стандартной цветовой таблицы
Сохрани как colors.sh:
#!/bin/bash echo "Таблица базовых цветов ANSI (текст и фон):" for style in 0 1; do echo -e "\n\033[${style}mСтиль: $style (0=обычный, 1=жирный)\033[0m" for fg in {30..37}; do for bg in {40..47}; do echo -en "\033[${style};${fg};${bg}m ${fg};${bg} \033[0m " done echo done done
\
Bash-скрипт для 256 ANSI-цветов (текст)
Сохрани как colors-256.sh:
#!/bin/bash echo "Таблица 256 ANSI цветов (foreground):" for i in {0..255}; do printf "\033[38;5;%sm%3s\033[0m " "$i" "$i" if (( (i + 1) % 16 == 0 )); then echo fi done
\
Примечание
- Поддержка 256-цветных escape-последовательностей зависит от терминала (например, `xterm`, `gnome-terminal`, `konsole` и др.).
- Чтобы работало в putty надо указать export TERM='xterm-256color' в .bashrc