echo输出彩色字符

用bash的echo -e命令输出彩色字符串


reference:  http://hi.baidu.com/chendeping/item/5f203562a97b8a176995e642


-e选项会激活反划开头(\)转义序列的解释。

我用EBNF形式来表达这种彩色模式(cs)

cs ::= "\e["cp{;cp}"m"

cp ::= d [d]

d ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"


上面的\e可以替换为\033或者\x1b,这三者的转义完全等价。


下面是颜色属性(cp)的说明:

可选编码:
  0 重新设置属性到缺省设置
#####效果
  1 设置粗体
  2 设置一半亮度(模拟彩色显示器的颜色)
  4 设置下划线(模拟彩色显示器的颜色)
  5 设置闪烁
  7 设置反向图象
  22 设置一般密度
  24 关闭下划线
  25 关闭闪烁
  27 关闭反向图象
#####前景色  
  30 设置黑色前景
  31 设置红色前景
  32 设置绿色前景
  33 设置棕色前景
  34 设置蓝色前景
  35 设置紫色前景
  36 设置青色前景
  37 设置白色前景
  38 在缺省的前景颜色上设置下划线
  39 在缺省的前景颜色上关闭下划线
#####背景色 
  40 设置黑色背景
  41 设置红色背景
  42 设置绿色背景
  43 设置棕色背景
  44 设置蓝色背景
  45 设置紫色背景
  46 设置青色背景
  47 设置白色背景
  49 设置缺省黑色背景


举例:

显示棕底红字带下划线的粗体字,内容是Hello, world.,显示完成后恢复缺省设置:

echo -e "\e[31;43;1;4mHello, world.\e[0m"

你可能感兴趣的:(echo输出彩色字符)