🎩 Bash: ANSI Escape Sequence для измСнСния Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π°.

На Ρ‡Π΅ΠΌ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½ΠΎ: Rocky Linux 9.5 (Blue Onyx)/ Debian GNU/Linux 12 (bookworm)/ Ubuntu 24.04.1 LTS/ Fedora Linux 41 (KDE Plasma)

ANSI Escape Sequence β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для управлСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ тСкста, Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… стандарт ANSI (American National Standards Institute). Π­Ρ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ стандартов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ для управлСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ тСкста, пСрСмСщСния курсора ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄Π°.

ANSI escape sequences ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом для управлСния Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ… ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для создания Π±ΠΎΠ»Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π² скриптах ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ тСкстовоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Однако стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ANSI escape sequences, ΠΈ ΠΈΡ… возмоТности ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ANSI Escape Sequence.

ANSI escape sequences Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа Escape (ESC, \033 ΠΈΠ»ΠΈ \e, Π² зависимости ΠΎΡ‚ языка программирования) ΠΈ Π·Π° Π½ΠΈΠΌ слСдуСт символ [ (ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ квадратная скобка), послС Ρ‡Π΅Π³ΠΎ ΠΈΠ΄ΡƒΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ заканчиваСтся Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ символом m для Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² тСкста ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ символами для управлСния курсором ΠΈ экрана.

Основная Ρ„ΠΎΡ€ΠΌΠ° выглядит Ρ‚Π°ΠΊ:

ESC [ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1; ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2; ... ; ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€N m

ESC — это символ Escape, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставлСн ΠΊΠ°ΠΊ \033 ΠΈΠ»ΠΈ \e.
[ — ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ квадратная скобка.
ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ — числа, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с запятой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ.
m — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для опрСдСлСния Ρ†Π²Π΅Ρ‚Π° ΠΈ стиля тСкста.

ΠšΠΎΠ΄Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ² тСкстов ΠΈ Ρ„ΠΎΠ½ΠΎΠ².

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ стили:

Π‘Ρ‚ΠΈΠ»ΡŒ.

  • Бброс всСх Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²: \e[0m
  • Π–ΠΈΡ€Π½Ρ‹ΠΉ: \e[1m
  • Угасший (ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ): \e[2m
  • ΠšΡƒΡ€ΡΠΈΠ²: \e[3m
  • ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ: \e[4m
  • ΠœΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ (Π½Π΅ поддСрТиваСтся Π²ΠΎ всСх Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ…): \e[5m
  • ΠœΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΠΉ (Π½Π΅ поддСрТиваСтся Π²ΠΎ всСх Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ…): \e[6m
  • Π˜Π½Π²Π΅Ρ€ΡΠ½Ρ‹ΠΉ (мСняСт Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π°): \e[7m
  • Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ (тСкст становится Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ): \e[8m

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

$ mcedit ~/stili_text.sh
#!/bin/bash

# Бброс всСх Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²
echo -e "\e[0mБброс всСх Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²\e[0m"

# Π–ΠΈΡ€Π½Ρ‹ΠΉ
echo -e "\e[1mΠ–ΠΈΡ€Π½Ρ‹ΠΉ тСкст\e[0m"

# Угасший (ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ)
echo -e "\e[2mУгасший тСкст\e[0m"

# ΠšΡƒΡ€ΡΠΈΠ²
echo -e "\e[3mΠšΡƒΡ€ΡΠΈΠ²Π½Ρ‹ΠΉ тСкст\e[0m"

# ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ
echo -e "\e[4mΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ тСкст\e[0m"

# ΠœΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ (Π½Π΅ поддСрТиваСтся Π²ΠΎ всСх Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ…)
echo -e "\e[5mΠœΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ тСкст\e[0m"

# ΠœΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΠΉ (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ)
echo -e "\e[6mΠœΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΠΉ тСкст\e[0m"

# Π˜Π½Π²Π΅Ρ€ΡΠ½Ρ‹ΠΉ (мСняСт Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π°)
echo -e "\e[7mΠ˜Π½Π²Π΅Ρ€ΡΠ½Ρ‹ΠΉ тСкст\e[0m"

# Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ (тСкст становится Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ)
echo -e "\e[8mΠ‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ тСкст\e[0m"
$ bash ~/stili_text.sh

ΠžΡ‚Π²Π΅Ρ‚:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. НапримСр, β€œΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉβ€ ΠΈ β€œΠΌΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΠΉβ€ тСкст ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ².

Π¦Π²Π΅Ρ‚Π° тСкста.

  • Π§Π΅Ρ€Π½Ρ‹ΠΉ: \e[30m
  • ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ: \e[31m
  • Π—Π΅Π»Π΅Π½Ρ‹ΠΉ: \e[32m
  • Π–Π΅Π»Ρ‚Ρ‹ΠΉ: \e[33m
  • Π‘ΠΈΠ½ΠΈΠΉ: \e[34m
  • Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ: \e[35m
  • Π‘ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ: \e[36m
  • Π‘Π΅Π»Ρ‹ΠΉ: \e[37m

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

$ mcedit ~/colors_of_text.sh
#!/bin/bash

# Π§Π΅Ρ€Π½Ρ‹ΠΉ
echo -e "\e[30mΠ§Π΅Ρ€Π½Ρ‹ΠΉ тСкст\e[0m"

# ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ
echo -e "\e[31mΠšΡ€Π°ΡΠ½Ρ‹ΠΉ тСкст\e[0m"

# Π—Π΅Π»Π΅Π½Ρ‹ΠΉ
echo -e "\e[32mΠ—Π΅Π»Π΅Π½Ρ‹ΠΉ тСкст\e[0m"

# Π–Π΅Π»Ρ‚Ρ‹ΠΉ
echo -e "\e[33mΠ–Π΅Π»Ρ‚Ρ‹ΠΉ тСкст\e[0m"

# Π‘ΠΈΠ½ΠΈΠΉ
echo -e "\e[34mΠ‘ΠΈΠ½ΠΈΠΉ тСкст\e[0m"

# Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ
echo -e "\e[35mΠ€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ тСкст\e[0m"

# Π‘ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ
echo -e "\e[36mΠ‘ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ тСкст\e[0m"

# Π‘Π΅Π»Ρ‹ΠΉ
echo -e "\e[37mΠ‘Π΅Π»Ρ‹ΠΉ тСкст\e[0m"
$ bash ~/colors_of_text.sh

ΠžΡ‚Π²Π΅Ρ‚:

ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†Π²Π΅Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ e[0m, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΈΠ½Π°Ρ‡Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚.

Π―Ρ€ΠΊΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° тСкста.

  • Π―Ρ€ΠΊΠΈΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ (сСрый): \e[90m
  • Π―Ρ€ΠΊΠΈΠΉ красный: \e[91m
  • Π―Ρ€ΠΊΠΈΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ: \e[92m
  • Π―Ρ€ΠΊΠΈΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ: \e[93m
  • Π―Ρ€ΠΊΠΈΠΉ синий: \e[94m
  • Π―Ρ€ΠΊΠΈΠΉ Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ: \e[95m
  • Π―Ρ€ΠΊΠΈΠΉ Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ: \e[96m
  • Π―Ρ€ΠΊΠΈΠΉ Π±Π΅Π»Ρ‹ΠΉ: \e[97m

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

$ mcedit ~/bright_text_colors.sh
#!/bin/bash

# Π―Ρ€ΠΊΠΈΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ (сСрый)
echo -e "\e[90mΠ―Ρ€ΠΊΠΈΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ (сСрый) тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ красный
echo -e "\e[91mΠ―Ρ€ΠΊΠΈΠΉ красный тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ
echo -e "\e[92mΠ―Ρ€ΠΊΠΈΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ
echo -e "\e[93mΠ―Ρ€ΠΊΠΈΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ синий
echo -e "\e[94mΠ―Ρ€ΠΊΠΈΠΉ синий тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ
echo -e "\e[95mΠ―Ρ€ΠΊΠΈΠΉ Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ
echo -e "\e[96mΠ―Ρ€ΠΊΠΈΠΉ Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ тСкст\e[0m"

# Π―Ρ€ΠΊΠΈΠΉ Π±Π΅Π»Ρ‹ΠΉ
echo -e "\e[97mΠ―Ρ€ΠΊΠΈΠΉ Π±Π΅Π»Ρ‹ΠΉ тСкст\e[0m"
$ bash ~/bright_text_colors.sh

ΠžΡ‚Π²Π΅Ρ‚:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Ρ†Π²Π΅Ρ‚Π° заканчиваСтся e[0m, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ стандартному Ρ†Π²Π΅Ρ‚Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния.

Π¦Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.

  • Π§Π΅Ρ€Π½Ρ‹ΠΉ: \e[40m
  • ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ: \e[41m
  • Π—Π΅Π»Π΅Π½Ρ‹ΠΉ: \e[42m
  • Π–Π΅Π»Ρ‚Ρ‹ΠΉ: \e[43m
  • Π‘ΠΈΠ½ΠΈΠΉ: \e[44m
  • Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ: \e[45m
  • Π‘ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ: \e[46m
  • Π‘Π΅Π»Ρ‹ΠΉ: \e[47m

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

    $ mcedit ~/colors_of_background.sh
    #!/bin/bash
    # Π§Π΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[40mВСкст Π½Π° Ρ‡Π΅Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[41mВСкст Π½Π° красном Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π—Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[42mВСкст Π½Π° Π·Π΅Π»Π΅Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π–Π΅Π»Ρ‚Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[43mВСкст Π½Π° ΠΆΠ΅Π»Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π‘ΠΈΠ½ΠΈΠΉ Ρ„ΠΎΠ½
    echo -e "\e[44mВСкст Π½Π° синСм Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[45mВСкст Π½Π° Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π‘ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[46mВСкст Π½Π° Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π‘Π΅Π»Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[47mВСкст Π½Π° Π±Π΅Π»ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    $ bash ~/colors_of_background.sh

    ΠžΡ‚Π²Π΅Ρ‚:

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Ρ†Π²Π΅Ρ‚Π° заканчиваСтся e[0m, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΊ стандартному Ρ„ΠΎΠ½Ρƒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния.

    Π―Ρ€ΠΊΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.

    • Π―Ρ€ΠΊΠΈΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ: \e[100m
    • Π―Ρ€ΠΊΠΈΠΉ красный: \e[101m
    • Π―Ρ€ΠΊΠΈΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ: \e[102m
    • Π―Ρ€ΠΊΠΈΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ: \e[103m
    • Π―Ρ€ΠΊΠΈΠΉ синий: \e[104m
    • Π―Ρ€ΠΊΠΈΠΉ Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ: \e[105m
    • Π―Ρ€ΠΊΠΈΠΉ Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ: \e[106m
    • Π―Ρ€ΠΊΠΈΠΉ Π±Π΅Π»Ρ‹ΠΉ: \e[107m

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

    $ mcedit ~/bright_background_colors.sh
    #!/bin/bash
    
    # Π―Ρ€ΠΊΠΈΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[100mВСкст Π½Π° ярком Ρ‡Π΅Ρ€Π½ΠΎΠΌ (сСром) Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ красный Ρ„ΠΎΠ½
    echo -e "\e[101mВСкст Π½Π° ярком красном Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[102mВСкст Π½Π° ярком Π·Π΅Π»Π΅Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[103mВСкст Π½Π° ярком ΠΆΠ΅Π»Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ синий Ρ„ΠΎΠ½
    echo -e "\e[104mВСкст Π½Π° ярком синСм Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[105mВСкст Π½Π° ярком Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[106mВСкст Π½Π° ярком Π±ΠΈΡ€ΡŽΠ·ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    
    # Π―Ρ€ΠΊΠΈΠΉ Π±Π΅Π»Ρ‹ΠΉ Ρ„ΠΎΠ½
    echo -e "\e[107mВСкст Π½Π° ярком Π±Π΅Π»ΠΎΠΌ Ρ„ΠΎΠ½Π΅\e[0m"
    $ bash ~/bright_background_colors.sh

    ΠžΡ‚Π²Π΅Ρ‚:

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Ρ†Π²Π΅Ρ‚Π° заканчиваСтся e[0m, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΊ стандартному Ρ„ΠΎΠ½Ρƒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ эффСкта.

    Бброс Ρ†Π²Π΅Ρ‚Π°.

    ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния Ρ†Π²Π΅Ρ‚Π° рСкомСндуСтся ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² стандартноС состояниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ \e[0m:

    • Бброс: \e[0m

    Бброс Ρ†Π²Π΅Ρ‚ΠΎΠ²:

    $ echo -e "\e[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ экран:

    $ clear

    Или ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ настройки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ reset:

    $ reset

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ANSI Escape Sequences.

    ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° тСкста.

    Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для измСнСния Ρ†Π²Π΅Ρ‚Π° тСкста:

    $ echo -e "\033[31mΠ­Ρ‚ΠΎ красный тСкст\033[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    \033[31m — устанавливаСт красный Ρ†Π²Π΅Ρ‚ тСкста.
    \033[0m — сбрасываСт всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ стандартному Ρ†Π²Π΅Ρ‚Ρƒ.

    Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ тСкст ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹:

    $ echo -e "\033[1mΠ–ΠΈΡ€Π½Ρ‹ΠΉ тСкст\033[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    $ echo -e "\033[4mΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ тСкст\033[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    Π¦Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° тСкста:

    $ echo -e "\033[44mВСкст Π½Π° синСм Ρ„ΠΎΠ½Π΅\033[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    Π—Π΄Π΅ΡΡŒ 44 устанавливаСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° Π½Π° синий.

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора.

    ANSI escape sequences ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для управлСния курсором.

    ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° экрана ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ», Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ clear происходит эффСкт отступа Π² ΠΎΠ΄Π½Ρƒ строку ΠΎΡ‚ края экрана консоли:

    $ echo -e "\033[2J\033[H"

    ΠžΡ‚Π²Π΅Ρ‚:

    Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ clear, происходит эффСкт очищСния консоли Π±Π΅Π· отступа Π² ΠΎΠ΄Π½Ρƒ строку ΠΎΡ‚ края экрана консоли:

    $ clear
    

    ΠžΡ‚Π²Π΅Ρ‚:

    ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² скриптах ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….

    НапримСр:

    $ echo -e "\e[32mΠ­Ρ‚ΠΎ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ тСкст\e[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    $ echo -e "\e[41mΠ­Ρ‚ΠΎ тСкст с красным Ρ„ΠΎΠ½ΠΎΠΌ\e[0m"

    ΠžΡ‚Π²Π΅Ρ‚:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² скриптС.

    $ mcedit ~/colors_in_script.sh
    #!/bin/bash
    echo -e "\e[1;31mΠ­Ρ‚ΠΎ ΠΆΠΈΡ€Π½Ρ‹ΠΉ красный тСкст\e[0m"
    echo -e "\e[4;34mΠ­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ синий тСкст\e[0m"
    echo -e "\e[7;32mΠ­Ρ‚ΠΎ инвСрсный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ тСкст Π½Π° Ρ„ΠΎΠ½Π΅ красного\e[41m\e[37m\e[0m"
    $ bash ~/colors_in_script.sh

    ΠžΡ‚Π²Π΅Ρ‚:

    НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ \e[0m, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ стандартному ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ тСкста послС использования Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ тСкста Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅.

    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

    1. НСт.

    Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ...