2009年5月5日星期二

Linux终端输出颜色控制

使用方法:
printf("\033[字背景颜色;字体颜色m字符串\033[0m" );
例子:
printf("\033[47;31mhello world\033[5m");
说明:
47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码

格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m"
例如: echo "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
那些ascii code 是对颜色调用的始末.
\033[ ; m …… \033[0m
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色

===========ANSI控制码的说明=============
\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 显示光标

我写的一个例程:
#include "stdio.h"

int main(void)
{
int color;
for (color = 0; color < 20; color++)
{
printf("\x1b[1;4;%dmThe color of this line is %d,
%s!\x1b[0m\n", 30+color, 30+color, "ha ha");
}
}
运行结果:

没有评论: