终端颜色


echo -e "\033[32mHello, world!"
echo命令-e选项的作用是激活终端对反斜线转义符(即\)的解释。引号内\033用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后 边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。

 

设置可以单独使用,例如:

echo -e "\033[0m"

这行命令的作用是恢复属性为默认值,也就是说0m设置项用于恢复默认值。

 

同类的多种设置项可以组合在一起,中间用分号(;)隔开。如下:
echo -e "\033[20;1H\033[1;4;32mHello,world\033[0m"
这行命令首先\033[20;1H将光标移动到终端第20行第1列,之后的\033[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然
后输出Hello,world;最后\033[0m将终端属性恢复为默认值,这样就不会看到连命令完成后的命令提示符也变了样儿了。
通过以上各种命令的组合就可以实现对终端输出地复杂控制

理解了以上在Shell中的实现方法,关于在C中如何实现就很简单了。可以说只需要用printf函数代替上边的echo -e就OK了。参见下例:
int color = 32;
printf("\033[20;1H\033[1;4;%dmHello, world.\033[0m", color);
这个例子类似上边shell中最后那个例子,只是这里颜色值通过变量color来指定(当然,也可以直接指定)。

posted on 2012-12-11 22:32  阿加  阅读(247)  评论(0编辑  收藏  举报

导航