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来表示颜色方案结束,否则后面的提示符都会变颜色