在写一些脚本的时候输出信息太多,对一些重要信息加上颜色提示会更加友好。

前景色(文本颜色)

例如要将 hello 在控制台上输出为红色,执行如下的命令

echo -e "\033[31mhello\033[0m"

\033[31m 表示将字符的显示颜色改为红色

\033[0m 表示将字符的显示颜色改为正常值

可以看到 \033[ 以及最后的 m 都是一样的,就是中间的数字有区别,这个数字就代表了要显示的颜色,含义如下

30        黑色 
31        红色 
32        绿色 
33        淡红色 
34        蓝色 
35        紫色 
36        淡蓝色 
37        灰色 

背景色

背景色和前景色设置的方法一样,只是使用的数字不同

40        黑色 
41        红色 
42        绿色 
43        淡红色 
44        蓝色 
45        紫色 
46        淡蓝色 
47        灰色 

如果需要同时设置前景色和背景色,例如输出文本颜色为红色,背景色为绿色的字符串,需要以分号分隔两个数字,示例如下

echo -e "\033[31;42mhello\033[0m"

简化

从上面的示例可以看到这样写起来很麻烦,可以简单的将重复的内容定义为一个变量

lc='\033['
rc='\033[0m'
cred='31m'        # red
cgreen='32m'      # green

echo -e "${lc}${cred}hello${rc}"