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

终端彩色文字色彩小结[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"
#!/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};1m  Bold  ${ESC}0m"
  done
  echo -e "$line1\n$line2"
done