Colorful Print to Terminal
28 Mar 2019 Linux tips shellThis post introduces how to use escape code to get colorful output in a terminal.
Many terminals follow the ANSI escape code format and support colorful outputs. Here is an example string that would be displayed with colors:
"\033[32mred\033[1;32mGREEN\033[21;34mblue"
As we can see, it begins with \033, the ASCII code 27 ESC.
It is followd by [ and some numbers to indicate the colors.
Eventually, we terminate the escape code by m.
Here comes the table for colors’ numbers:
| Color | Foreground | Background |
|---|---|---|
| black | 30 | 40 |
| red | 31 | 41 |
| green | 32 | 42 |
| yellow | 33 | 43 |
| blue | 34 | 44 |
| magenta | 35 | 45 |
| cyan | 36 | 46 |
| light grey | 37 | 47 |
| dark grey | 90 | 100 |
| light red | 91 | 101 |
| light green | 92 | 102 |
| light yellow | 93 | 103 |
| light blue | 94 | 104 |
| light magenta | 95 | 105 |
| light cyan | 96 | 106 |
| white | 97 | 107 |
And here comes the table for special font settings:
| Settings | on | off |
|---|---|---|
| reset | 0 | |
| bold/bright | 1 | 21 |
| dim | 2 | 22 |
| underline | 4 | 24 |
| blink | 5 | 25 |
| inverse | 7 | 27 |
| hidden | 8 | 28 |
| strikeout | 9 | 29 |
The color and font settings would take effect as long as you output it to terminal, not matter in which way you do the output. Examples are:
- echo:
echo -e "\033[1;91mHello red - c++:
cout << "\033[4;92mHello green"; - python:
print("\033[9;94mHello blue")
Credits
- How do I output coloured text to a Linux terminal? - Thanks Thomas and Rakete1111 for their answer.
- Bash tips: Colors and formatting (ANSI/VT100 Control sequences) - Thanks FLOZz for the nice article.
