[Shell 编程]控制输出文字的颜色

2008-06-19 | 3:52 pm分类:系统管理 | 66 views

cfont()
{
while (($#!=0))
do
case $1 in
-b)
echo -ne ” “;
;;
-t)
echo -ne “\t”;
;;
-n)     echo -ne “\n”;
;;
-black)
echo -ne “\033[30m";
;;
-red)

                        echo -ne "\033[31m";
;;
-green)
echo -ne "\033[32m";
;;
-yellow)
echo -ne "\033[33m";
;;
-blue)
echo -ne "\033[34m";
;;
-purple)
echo -ne "\033[35m";
;;
-cyan)
echo -ne "\033[36m";
;;
-white|-gray) echo -ne "\033[37m";
;;
-reset)
echo -ne "\033[0m";
;;
-h|-help|--help)
echo "Usage: cfont -color1 message1 -color2 message2 ...";
echo "eg:       cfont -red [ -blue message1 message2 -red ]“;
;;
*)
echo -ne “$1″
;;
esac
shift
done
}

用例:
cfont -cyan “Start service … ” -red “[" -green "OK" -red "]” -n
输出应该是类似下面颜色的:

Start service … [OK]

注意:
1、如果在字串中有空格,跳格(TAB)以及用”\”转义过的转义字串,应当将其包含在双引号中。
如果非要写个不带双引号的语句,例如上面的例子,可以写成:

cfont -cyan Start -b service -b-b -red [ -green OK -red ] -n

2、记得最后写完之后,如果需要换行,请在行尾加上”-n”,我不会主动帮你换行的。
如果你习惯于将一整行信息在一个语句内写完而不喜欢自己换行,那么在函数最后两行(也就是绿颜色的那两行)的”done”后面自己加个”echo”吧

3、向各位推荐余晟师傅翻译的《精通正则表达式》一书,正在印刷中,大约九月份就可以见到实体书。

4、在C里也是一样嘀:

printf(”\033[33m”);
printf(”Message X\n”);
printf(”\033[0m”);

函数就不写了。

Sorry, comments for this entry are closed at this time.