[转载]linux终端输出带有颜色的字体
时间:2011-05-28 来源:icejoywoo
原文地址:http://notes.houqp.com/doku.php?id=set_terminal_font_color
Hello World
要改变输出文字的颜色其实很简单,我们先来个hello world:
echo -e "\033[0;31;40mhello world"
基本语法
根据上面的代码,我来解释一下它的语法结构。
首先,”“里面的hello world应该很好理解了,就是我们要输出的内容,关键是前面的\033[0;31;40m,这里需要遵循一定的规律。
其中\033指的是33(8进制)代表escape字符,与”[“连起来就是设置字符颜色的标志。也就是说,当xterm看到”\033[“时就知道后面接的是要打印的字符的颜色设定。所以每次设定颜色的时候都要以这个开头。当然,你也可以用16进制来表示这个开头:
echo -e "\x1b\x5b0;31;40mhello world"
或者用”\e[“:
echo -e "\e[0;31;40mhello world"
“\033[“后面接的是三个参数,都用数字给出并以”;”号分隔。他们分别代表字体属性,字体颜色与背景颜色。
以我们的hello world为例,0代表重置原来的所有属性,31是红色的代码,40则是黑色背景的代码。
关于具体每个参数有哪些可选的值,请看下面。
参数代码
以下只列举了常用的一部分代码,更完整的列表暂时还没找到。
字体属性0 Reset All Attributes (return to normal mode) 1 Bright (usually turns on BOLD) 2 Dim 3 Underline 5 Blink 7 Reverse 8 Hidden字体颜色
30 black 31 dark red 32 light green 33 dark yellow 34 dark blue 35 light violet 36 light blue, cyan 37 white背景颜色
40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White
有一点要注意的是所有颜色配上1m参数做为背景时就会被加亮,例如31;1m代表更亮的红。但这时就无法指定背景了。
想要要各种字体的颜色,可以运行这个脚本:
color-matrix.sh#!/bin/bash #对7种颜色的加亮 for i in `seq 30 37`;do echo -e "\x1b\x5b0;$i;1m $i;1m" done #7种颜色与7种背景的搭配 for j in `seq 40 47`;do for i in `seq 30 37`;do echo -e "\x1b\x5b0;$i;"$j"m $i;"$j"m" done done
更多颜色
后来发现原来可以现实更多的颜色!!! 请看这个脚本。
相关阅读 更多 +