相信大多数前端童鞋,在工程构建或者node服务启动时,或多或少会在控制台看到一些彩色输出,在满屏黑白中给人眼前一亮的感受~
下面就是一个git提交信息校验插件的控制台信息输出:
通常状况下,控制台输出信息会很是多,想要找到关键信息会比较麻烦。能够看到上例,彩色输出可以帮助使用者对当前执行进度
以及状态
一目了然。
若是在构建过程或给本身写的插件增长格式输出,是否是很酷~前端
归功于转义序列(escape sequences
),终端不只可以输出黑色,一样支持输出带颜色和格式化的文本。因为要区分普通输出内容,所以须要特殊的转义字符进行标识:“<Esc>[FormatCode
m” :node
Esc
在bash环境,可使用以下方式表示://不一样字符集编码表现不一样,这里展现部分 \033 //Esc的8进制表示 \x1B //Esc的16进制表示 \e //Bash提供的插入转义字符的方便方法,window的shell不支持。
_FormatCode_
表示对文本进行何种格式化的编码;Examples:
注意:git
-e
是echo命令的参数,表示开启解析转义序列;\e[0m
序列用于删除设置的全部格式和颜色;能够理解为对文本格式处理的结束符,避免影响后面的文本;console.log()
方式输出。
下例中具体格式编码见参考,使用node环境。shell
console.log('normal \033[34m text \033[0m normal');
\033[34m
:表示对接下来的文本进行格式处理;34表示字体使用蓝色;\033[0m
:一样是转义标识,0标识清除前面设置的格式,不影响后面的输出。
效果展现:编程
console.log('normal \033[42m background \033[0m normal');
code为42对应绿色背景。
效果展现:segmentfault
支持256色,此时转义格式变为:"<Esc>[38;5;ColorNumberm
"bash
let str = ''; for(let i = 16; i < 22; i++) { str += '\033[38;5;'+i+'m#\033[0m'; } for(let i = 21; i > 15; i--) { str += '\033[38;5;'+i+'m#\033[0m'; } console.log(str);
效果展现:编程语言
console.log('\033[1;31;42m Yes it is cool \033[0m \033[4mUnderlined\033[0m');
效果展现:字体
好了,这些已经知足通常的控制台装逼提示需求,不妨尝试下~编码
更多技术分享及时获取,欢迎【扫码关注】
~