在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,ls、vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。
一、终端文本颜色输出的一般示例
在bash中,通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:
echo -e " 33[31mRed Text 33[0m"
echo -e " 33[32mGreen Text 33[0m"
echo -e " 33[33mYellow Text 33[0m"
echo -e " 33[34mBlue Text 33[0m"
echo -e " 33[35mMagenta Text 33[0m"
echo -e " 33[36mCyan Text 33[0m"
可以分别输出:
Red Text
Green Text
Yellow Text
Blue Text
Magenta Text
Cyan Text
其中:" 33[31m"、" 33[31m"、" 33[0m"等是ANSI转义序列(ANSI escape code/sequence),它控制文本输出的格式、颜色等。
【注】: 33是键盘左上角Esc键对应的ASCII码(8进制), 33、x1b和e效果一样, 例如:echo -e "x1b[31mRed Texte[0m"也输出红色字体“Red Text”。
可以这样说,无论什么语言,只要你的终端能够解释ANSI转义序列(大多数的类unix终端仿真器都能够解释ANSI转义序列,win32控制台则不支持),就能够使用ANSI转义序列输出颜色。下面给出几个示例。
示例1: C程序输出颜色示例
1 // hello.c
2 #include <stdio.h>
3 int main() {
4 printf("