终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl等均可以调用。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。
\033[显示方式;前景色;背景色m
显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)
背景色:40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)
\033[0m 默认
\033[1;32;40m 绿色
033[1;31;40m 红色
>>> print "\033[1;31;40m%s\033[0m" % " 输出红色字符"
#!/bin/sh
echo -e ""
echo -e "\\033[0;31m系统颜色设置代码调试,此颜色为一号颜色 - 红!"
echo -e "\\033[0;39m"
echo -e "\\033[0;32m系统颜色设置代码调试,此颜色为二号颜色 - 绿!"
echo -e "\\033[0;39m"
echo -e "\\033[0;33m系统颜色设置代码调试,此颜色为三号颜色 - 黄!"
echo -e "\\033[0;39m"
echo -e "\\033[0;34m系统颜色设置代码调试,此颜色为四号颜色 - 蓝!"
echo -e "\\033[0;39m"
echo -e "\\033[0;35m系统颜色设置代码调试,此颜色为五号颜色 - 紫!"
echo -e "\\033[0;39m"
echo -e "\\033[0;36m系统颜色设置代码调试,此颜色为六号颜色 - 青!"
echo -e "\\033[0;39m"
echo -e "\\033[0;39m系统颜色设置代码调试,此颜色为九号颜色 - 白!"
echo -e "\\033[0;39m"
echo -e 'echo -e "\\\\033[0;39mThis is the script test!"'
echo -e ""
for i in `seq 16 255`; do printf "\e[38;5;%sm %s\t" $i $i;done;echo ""
shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e
格式如下:
echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"
例如:
echo -e "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
注:
1、字背景颜色和文字颜色之间是英文的""
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格
下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配
例
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[34m 黄色字 \033[0m”
echo -e “\033[41;33m 红底黄字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
字颜色:30—–37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40—–47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”
最后面控制选项说明
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m — \33[37m 设置前景色
\33[40m — \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
如何在
Linux下Shell脚本输出带颜色文字
echo -e "\033[44;37;5m ME \033[0m COOL"
以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字符ME,然后重新设置屏幕到缺省设置,输出字符me后颜色回复正常
e是echo的一个可选项,它用于激活特殊字符的解析器。\033引导非常规字符序列。意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是
44;37;5和0。修改44;37;5可以生成不同颜色的组合,数值和编码的前后顺序没有关系。
可以选择的编码如下所示:
编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置棕色前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色前景
38 在缺省的前景颜色上设置下划线
39 在缺省的前景颜色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置棕色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色背景
49 设置缺省黑色背景
【参考】http://blog.chinaunix.net/uid-16362696-id-2746870.html