shell终端输出内容美化
作者:James Zhu ([email protected])
创建日期:2018-05-30
引言
我们在编写shell脚本(如bash/sh等)时,有时会因为输出内容过多而观察不便,因此需要将一些重要信息高亮显示。
ANSI转义序列是一种In-band signaling的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列,大部分以ESC
转义字符和[
字符开始,终端会把这些字节序列解释为相应的指令,而不是普通的字符编码。
ANSI转义序列表(不完整列表)
Set
Code | Description | Example |
---|---|---|
1 | Bold/Bright | echo -e "Normal \e[1mBold" |
2 | Dim | echo -e "Normal \e[2mDim" |
4 | Underlined | echo -e "Normal \e[4mUnderlined" |
5 | Blink | echo -e "Normal \e[5mBlink" |
7 | Reverse | echo -e "Normal \e[7minverted" |
8 | Hidden | echo -e "Normal \e[8mHidden" |
Unset
Code | Description | Example |
---|---|---|
0 | Reset all attributes | echo -e "\e[0mNormal Text" |
21 | Reset bold/bright | echo -e "Normal \e[1mBold \e[21mNormal" |
22 | Reset dim | echo -e "Normal \e[2mDim \e[22mNormal" |
24 | Reset underlined | echo -e "Normal \e[4mUnderlined \e[24mNormal" |
25 | Reset blink | echo -e "Normal \e[5mBlink \e[25mNormal |
27 | Reset reverse | echo -e "Normal \e[7minverted \e[27mNormal" |
28 | Reset hidden | echo -e "Normal \e[8mHidden \e[28mNormal" |
Foreground (text)
Code | Description | Example |
---|---|---|
39 | Default foreground color | echo -e "Default \e[39mDefault" |
30 | Black | echo -e "Default \e[30mBlack" |
31 | Red | echo -e "Default \e[31mRed" |
32 | Green | echo -e "Default \e[32mGreen" |
33 | Yellow | echo -e "Default \e[33mYellow" |
34 | Blue | echo -e "Default \e[34mBlue" |
35 | Magenta | echo -e "Default \e[35mMagenta" |
36 | Cyan | echo -e "Default \e[36mCyan" |
37 | Light gray | echo -e "Default \e[37mLight gray" |
90 | Dark gray | echo -e "Default \e[90mDark gray" |
91 | Light red | echo -e "Default \e[91mLight red" |
92 | Light green | echo -e "Default \e[92mLight green" |
93 | Light yellow | echo -e "Default \e[93mLight yellow" |
94 | Light blue | echo -e "Default \e[94mLight blue" |
95 | Light magenta | echo -e "Default \e[95mLight magenta" |
96 | Light cyan | echo -e "Default \e[96mLight cyan" |
97 | White | echo -e "Default \e[97mWhite" |
Background
Code | Description | Example |
---|---|---|
49 | Default background color | echo -e "Default \e[49mDefault" |
40 | Black | echo -e "Default \e[40mBlack" |
41 | Red | echo -e "Default \e[41mRed" |
42 | Green | echo -e "Default \e[42mGreen" |
43 | Yellow | echo -e "Default \e[43mYellow" |
44 | Blue | echo -e "Default \e[44mBlue" |
45 | Magenta | echo -e "Default \e[45mMagenta" |
46 | Cyan | echo -e "Default \e[46mCyan" |
47 | Light gray | echo -e "Default \e[47mLight gray" |
100 | Dark gray | echo -e "Default \e[100mDark gray" |
101 | Light red | echo -e "Default \e[101mLight red" |
102 | Light green | echo -e "Default \e[102mLight green" |
103 | Light yellow | echo -e "Default \e[103mLight yellow" |
104 | Light blue | echo -e "Default \e[104mLight blue" |
105 | Light magenta | echo -e "Default \e[105mLight magenta" |
106 | Light cyan | echo -e "Default \e[106mLight cyan" |
107 | White | echo -e "Default \e[107mWhite" |