昨晚懒得FQ, 百度了一下linux中printf输出颜色的方法, 结果搜索结果质量让人倍感伤心. 越来越不想用bd了.
还是吧, 手气真好, 内容就很清楚明了!我还是直接简单翻译一下就OK.
有一些通常被称作控制字符的特殊字符, 当在被控制台终端读取时, 它们会影响文本的显示方式.
这些控制字符的通用格式如下:
Esc[{attr1};...;{attrn}m
其中:
Esc 是转义字符, 其值为"\033";
[ 是常量的左中括号;{attr1};...{attrn} 是若干属性, 通常是由一个有特定意义的数字代替, 每个属性之间用分号分隔;m 就是字面常量字符m;可用属性列表:
通用格式控制:
0 重围所有属性
1 高亮/加粗2 暗淡4 下划线5 闪烁7 反转8 隐藏
前景色:
30 黑色
31 红色32 绿色33 黄色34 蓝色35 品红36 青色37 白色
背景色:
40 黑色
41 红色42 绿色43 黄色44 蓝色45 品红46 青色47 白色
比如要输出的字体前景为红色:
1 printf("\033[31mThis text is red \033[0mThis text has default color\n");
如果同时还要加上黄色的背景:
printf("\033[31;43mThis text is red with yellow background \033[0mThis text has default color\n");
效果图: (示例解析程序: , 可能会改变)
更详细的链接: