通常情况下,命令行文字都是黑底白色的:

想不想来点改变?

给文字换个颜色;给背景换个颜色。

先来看段代码:

console.log('[31m Hello www.JShaman.com [0m');console.log('[32m Hello www.JShaman.com [0m');console.log('[33m Hello www.JShaman.com [0m');

想想它的运行输出是什么样的?

猜想到是这个效果了吗?想必没有吧。

为什么看似乱码的一段console()执行时会出现彩色的文字呢?

解释是这样的:

The original specification only had 8 colors, and just gave them names. The SGR parameters 30-37 selected the foreground color, while 40-47 selected the background. Quite a few terminals implemented "bold" (SGR code 1) as a brighter color rather than a different font, thus providing 8 additional foreground colors. Usually you could not get these as background colors, though sometimes inverse video (SGR code 7) would allow that. Examples: to get black letters on white background use ESC[30;47m, to get red use ESC[31m, to get bright red use ESC[31;1m. To reset colors to their defaults, use ESC[39;49m (not supported on some terminals), or reset all attributes with ESC[0m.
SGR code

大意是:“”是一个特殊的转意字符,遵从一定的规则,可以用来设置文字或背景颜色。

上面代码中,前面的[31m用于设定SGR颜色,后面的[0m相当于一个封闭标签作为前面SGR颜色的作用范围的结束点标记。

那么,我们就知道文字变色的原因了。可是如何知道哪个具体的转义字符代表是的什么颜色呢?

下面的操作将进行展示,通过node.js的三方库源码找出答案,熟练掌握此方法将会使你将来大受裨益。

继续:

在Node.JS中,还有一些三方模块,可以实现同样的效果,比如:colors。

例程:

require("colors");console.log("jshaman.com".green);console.log("jshaman.com".red);console.log("jshaman.com".yellow); 

运行输出效果:

当安装这个模块后,它的源码就被下载到了本地:

打开这个文件,在代码中会看到:

这下就找道相应颜色的转义字符了。这就是所谓的站在“巨人”的肩膀上吧。

更多本系列文章:

Node.JS实战40:压缩和解压文件

Node.JS实战39:Express文件上传一例

Node.JS实战38:将Node.JS代码编译成字节码

Node.JS实战37:全双工的WebSocket

Node.JS实战36:写一个WAF中间件!防黑客,防攻击

Node.JS实战35:给程序留一个“后门”

js前面代码出错继续运行_Node.JS实战41:让命令行变的五颜六色相关推荐

  1. js复制文本到剪贴板_如何将输出文本从命令行复制到Windows剪贴板

    js复制文本到剪贴板 If you're doing work at the command line on your Windows box, it's sometimes useful to co ...

  2. java swing运行没反应_java – 无法从命令行运行swing

    我在 windows中使用命令行来编译然后执行我的 java程序.我已经去了 http://java.sun.com/docs/books/tutorial/uiswing/start/compile ...

  3. linux使用管道显示某一进程的运行情况,pv - 显示当前在命令行执行的命令的进度信息,管道查看器...

    补充说明 pv命令 Pipe Viewer 的简称,由Andrew Wood 开发.意思是通过管道显示数据处理进度的信息.这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传 ...

  4. java命令行运行 classnotfound_Kotlin测试从ClassNotFoundException的命令行失败,但是从IntelliJ开始工作...

    我有一个Kotlin Spring Boot项目here . 它有一些测试,从IntelliJ运行得很好,但是当我从命令行运行时,失败并出现以下错误 . BUILD FAILED in 1m 12s ...

  5. mac怎么查node版本_Node.js 微服务实践:基于容器的一站式命令行工具链

    作者:个推Node.js 开发工程师 之诺 背景与摘要 由于工程数量的快速增长,个推在实践基于 Node.js 的微服务开发的过程中,遇到了如下问题: 1. 每次新建项目都需要安装一次依赖,这些依赖之 ...

  6. 分享99个JS幻灯片代码,总有一款适合您

    分享99个JS幻灯片代码,总有一款适合您 99个JS幻灯片代码下载链接:https://pan.baidu.com/s/1n8UQ41cem0GmgsOXCq9kMw?pwd=m5zf  提取码:m5 ...

  7. html加js倒计时代码,分享最简单的JavaScript倒计时代码(附完整代码)

    工作中经常需要在页面中设置倒计时,那你知道JS倒计时代码怎么写吗?这篇文章就给大家分享一个最简单的JS倒计时代码,以及详细的倒计时JS代码的思路,,有一定的参考价值,感兴趣的朋友可以看看. 举例:设定 ...

  8. 如何将命令行参数传递给Node.js程序?

    我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动. 我不确定如何在JavaScript中访问参数. 我正在像这样运行节点: $ node server.js folder 这是 ...

  9. 个推Node.js 微服务实践:基于容器的一站式命令行工具链

    2019独角兽企业重金招聘Python工程师标准>>> 作者:个推Node.js 开发工程师 之诺 背景与摘要 由于工程数量的快速增长,个推在实践基于 Node.js 的微服务开发的 ...

最新文章

  1. nio selector
  2. DTP模型之二:(XA协议之二)jotm分布式事务实现
  3. java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件
  4. Apache HBase的现状和发展
  5. 实例工厂配置bean
  6. VBA实战技巧精粹011:新建只有1张工作表的工作簿
  7. 中修改环境变量_系统小技巧:彻底弄懂Windows 10环境变量
  8. Spring Boot之发送HTTP请求(RestTemplate详解)
  9. 电脑开机提示计算机无法启动不了,电脑无法启动并出现“System Halted”如何解决?...
  10. 小程序公众图标素材+6113个菜单栏素材
  11. 电脑主板资料库 07【转至www.ongood.com.tw】【FreeXploiT收集整理】
  12. hadoopsnappy解压_Hadoop安装配置snappy压缩
  13. 呆萌却实际可怕的动物:蛇鹫会踢腿 大熊猫攻击凶猛
  14. 网络安全-MS17-010漏洞-永恒之蓝
  15. 最全MacWin软件分享
  16. Week-4-作业1
  17. 【Linux】-初识Linux
  18. 移芯平台EC616上按键唤醒
  19. FreeScale mpc8xxx + vxWorks平台下spi flash驱动开发三步走
  20. centos系统时区设置,美国西五区

热门文章

  1. Sun x4500作为文件服务器的调优
  2. 管理Exchange服务器
  3. ArcGIS Server9.2学习开发(4)——使用Toc控件
  4. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
  5. numpy随机生成01矩阵_NumPy数组基本介绍
  6. linux netlink 编程示例(一)内核端
  7. 初学者用涩性胶皮好还是粘性_乒乓球胶皮的保养方法
  8. 模块就是一个普通的python程序文件_Python-模块和包
  9. MySQL中数据库的操作
  10. 任务的定义、任务切换的原理及实现