shell 中的颜色
1) 概念
ANSI 转义码,控制显示格式
以 CSI ( control sequence indicator )开头,控制序列指示器
Select Graphic Rendition ,选择图形再现
2) CSIn[;k]m
n/k 定义所选用的显示控制, m 表 SGR 转义码
n/k 的定义:
0 普通模式, 1 强亮度, 2 亮度, 3 斜体, 4 单下划线, 5 慢闪, 6 快闪, 7 前景背景反转, 8 前景设为背景使文字不可见
如斜体的代码为“ CSI3m ” , “ CSI3;6m ”为斜体加闪烁
3) 颜色控制码:
使用两位数字 [34]x , 3 表前景, 4 表背景
0 黑色, 1 红, 2 绿, 3 黄, 4 蓝, 5 洋红, 6 青, 7 白
如红色斜体为 CSI31;3m
将 ANSI 转义码发送给终端模拟器以控制终端的输出;
使用 echo (或 cat )发送转义码到终端;
输入 ANSI 转义码的方法: ctrl-v ,再加 esc ,这将显示成“ ^[ ”
eg:
echo ^[[41m this is a test ^[[0m
前一 ^[[ 用于设置,后一 ^[[ 用于恢复到默认,
echo 中如果有多个转义代码,则需使用双引号,如下处理 CSI33;44m 时:
echo "^[[33;44mABC^[[0m"
4) 注意
终端模拟器只要遇到控制码就会进行处理,所以用 cat 浏览带转义码的脚本也会影响终端显示