shell输出彩色的字符串


遇到一个要求,要求shell输出的字符串是彩色的,现在写下来备忘。

示例:

echo -e  type  "\e[31m c\e[0m to continue"

这样输出一个 type c to continue 的字符串,其中c是红色的。

如果想让c是黄底红字

echo -e  type  "\e[31;43m c\e[0m to continue"

如果想再加一个高亮的效果

echo -e  type  "\e[31;43;1m c\e[0m to continue"

也就是说通过夹在 "\e["(转义开方括号)和 "m" 之间数值来设置各种效果,不同的数值代表不同的效果,可以多种数字组合起来用,数字之间用分号隔开。

下面是各种数字的含义

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


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

但结尾部分需要加上\e[0m来表示颜色方案结束,否则后面的提示符都会变颜色

相关内容