在Shell中或者Makefile一般会输出大量的信息,但是默认的输出信息都是同一种颜色,查看起来略显乏味。如果将重要环节的输出信息使用不同的颜色进行标记会使得输出信息更加美观同时方便阅读。这里我们用到了ANSI的ESC屏幕控制,其中可以更改输出颜色信息等。我们一般使用到的格式如下:
<ESC>[{option 1};{option 2};{option 3};...{option n-1};{option n}m
在echo输出信息时需要添加-e选项支持转义字符。<ESC>在输出信息中通常的表示形式有三种:\033、\x1b、\e。<ESC>后跟上屏幕控制的选项:以[标识开头、以m标识结尾。期间可以跟许多的屏幕控制选项:
0:所有属性恢复默认
1:高亮显示
4:添加下划线
5:闪烁
7:反隐(将字体颜色和背景色互换)
30~38:设置前景色(字体颜色)。(30黑色、31红色、32绿色、33黄色、34蓝色、35紫色、36青色、37灰色、38淡蓝色)
40~48:设置背景色(字体背景)。(40黑色、41红色、42绿色、43黄色、44蓝色、45紫色、46青色、47灰色、48淡蓝色)
2J:清屏
当我们使用了高亮选项后,部分颜色似乎会变色(不知是否我色盲了),黑色高亮后会变成灰色高亮,淡蓝色高亮后变成了白色。下面以一个简单的例子结束,如果还有不懂的欢迎讨论探讨:
#!/bash
echo -e "\e[0;1;31;40mhello world!\e[0m"