watercloud 发表于 2005-2-16 22:35:56

终端彩色文字色彩小结[zt]

先试试:
bash$ echo -e "\e[1;31mHello Color.\e[m"
就可以得到一个红色显示的Hello Color.

主要诀窍就是\e[1;31m色彩控制符号。 \e等价于某些终端下的<ctrl-v><escape>序列。1和31是两个代码,表示高亮和红色字体,其实还
可以用1;31;43来指定43号属性的背景。这些数字的意义在下面讲解。

1.用echo "<ctrl-v><escape>[31m测试<ctrl-v><escape>[37m"
   echo "^[[Xm YourChar"
   (X=30,31...36?)
   请注意这个转义系列的敲法是,<ctrl-v><escape>[30m
   echo "<ctrl-v><escape>[<代码>;<代码>;<代码>m"
   注意,语句必须要在""之间,属性分隔符为";",如闪烁红色
   echo "<ctrl-v><escape>[31;5m测试"

2.前景             背景            颜色
   ---------------------------------------
   30                40               黑色
   31                41               紅色
   32                42               綠色
   33                43               黃色
   34                44               藍色
   35                45               紫紅色
   36                46               青藍色
   37                47               白色

   代码            意义
   -------------------------
   0               OFF
   1               高亮显示
   4               underline
   5               闪烁
   7               反白显示
   8               不可见

3.产生颜色(黑色背景加绿色前景色):
   sco:            setcolor red; echo "abcd"; setcolor white
   Linux/BSD:      /usr/bin/echo -e "\033[40;32m"
   System V:       /usr/bin/echo "\033[40;32m"
   Generic Method: /usr/bin/echo "<ctrl-v><escape>[40;32m"

watch_1394 发表于 2005-2-17 03:54:01

#!/bin/bash
# script name: color_info.sh
# used for illustrating the ASCI color
                                                                              
ESC="\033["
echo -n "   40      41      42      43"
echo "      44      45      46      47"
for fore in `seq -s " "30 37`
do
line1="$fore"
line2="    "
for back in `seq -s " " 40 47`
do
    line1="${line1}${ESC}${back};${fore}m Normal ${ESC}0m"
    line2="${line2}${ESC}${back};${fore};1mBold${ESC}0m"
done
echo -e "$line1\n$line2"
done

BOoRFGOnZ 发表于 2005-2-17 07:41:41

:roll:
页: [1]
查看完整版本: 终端彩色文字色彩小结[zt]