让shell终端和goland控制台输出彩色的文字

版权声明:本文为 Elonjelinek 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Charliewolf/article/details/84771983

终端输出彩色文字

在终端输出这段命令,将的到一个红色背景、绿色文字,并不停闪烁的输出。

sszxr:~ sszxr$ echo  -e "\033[5;32;41mI ♡  You \033[0m"
I ♡  You
sszxr:~ sszxr$

双引号中的反斜杠\表示转义,033是标识符,表示用来设置颜色,[表示开始颜色设置,m为颜色设置结束。[后面的5表示闪烁,分号后面的32表示前景色,也就是文字的颜色,为绿色;再后面41表示背景色,为红色,到m为设置结束,后面是输出的内容,最后为再一次设置颜色,0m表示取消颜色设置。
从括号[m中间为颜色设置,以;号分隔。
样式有【0,1,4,5,7,8】六种,分别是:

0  终端默认设置
1  高亮显示
4  使用下划线
5  闪烁
7  反白显示
8  不可见

颜色有7中,分别为

前景 背景 颜色
30  40  黑色
31  41  红色
32  42  绿色
33  43  黄色
34  44  蓝色
35  45  紫红色
36  46  青蓝色
37  47  白色

3位前景色,也就是文字的颜色;4位背景色。

Go语言中的彩色输出

样式和颜色与上面一样,只是标识符不一样,

fmt.Printf("%c[0;41;36m%s%c[0m\n", 0x1B, "testPrintColor", 0x1B)

标识符为0x1B,具体设置也是在[m之间,以分号;分隔。

另一种方式

package mainimport ("fmt"
)var (greenBg      = string([]byte{27, 91, 57, 55, 59, 52, 50, 109})whiteBg      = string([]byte{27, 91, 57, 48, 59, 52, 55, 109})yellowBg     = string([]byte{27, 91, 57, 48, 59, 52, 51, 109})redBg        = string([]byte{27, 91, 57, 55, 59, 52, 49, 109})blueBg       = string([]byte{27, 91, 57, 55, 59, 52, 52, 109})magentaBg    = string([]byte{27, 91, 57, 55, 59, 52, 53, 109})cyanBg       = string([]byte{27, 91, 57, 55, 59, 52, 54, 109})green        = string([]byte{27, 91, 51, 50, 109})white        = string([]byte{27, 91, 51, 55, 109})yellow       = string([]byte{27, 91, 51, 51, 109})red          = string([]byte{27, 91, 51, 49, 109})blue         = string([]byte{27, 91, 51, 52, 109})magenta      = string([]byte{27, 91, 51, 53, 109})cyan         = string([]byte{27, 91, 51, 54, 109})reset        = string([]byte{27, 91, 48, 109})disableColor = false
)func main() {str := "hello world"fmt.Println(greenBg, str, reset)fmt.Println(whiteBg, str, reset)fmt.Println(yellowBg, str, reset)fmt.Println(redBg, str, reset)fmt.Println(blueBg, str, reset)fmt.Println(magentaBg, str, reset)fmt.Println(cyanBg, str, reset)word := "I love you"fmt.Println(green, word, reset)fmt.Println(white, word, reset)fmt.Println(yellow, word, reset)fmt.Println(red, word, reset)fmt.Println(blue, word, reset)fmt.Println(magenta, word, reset)fmt.Println(cyan, word, reset)
}

运行结果

[]byte{}中那些数字是什么意思

他们是0x1B [ ; m以及0-9的ASCII编码

package mainimport "fmt"func main() {fmt.Print(0x1B, '[', ';', 'm', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', "\n")fmt.Printf("%#X\t%c\t%c\t%c\t", 27, 91, 59, 109)fmt.Printf("%c\t%c\t%c\t%c\t%c\t%c\t%c\t%c\t%c\t%c\t", 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
}

运行结果

27 91 59 109 48 49 50 51 52 53 54 55 56 57
0X1B    [   ;   m   0   1   2   3   4   5   6   7   8   9

27代表0x1B
91代表[
59代表;
109代表m
57代表9,表示设置字体颜色
52代表4,表示设置背景色
51代表3,表示设置前景色,也就是文字的颜色
90到9730到37的效果一样,一个是设置字体颜色,一个是设置前景色,所以57和51可以互换,效果完全一样,
reset表示0x1B[0m,表示清除颜色设置。

package mainimport ("fmt"
)var (black        = string([]byte{27, 91, 57, 48, 109})red          = string([]byte{27, 91, 57, 49, 109})green        = string([]byte{27, 91, 57, 50, 109})yellow       = string([]byte{27, 91, 57, 51, 109})blue         = string([]byte{27, 91, 57, 52, 109})magenta      = string([]byte{27, 91, 57, 53, 109})cyan         = string([]byte{27, 91, 57, 54, 109})white        = string([]byte{27, 91, 57, 55, 59, 52, 48, 109})reset        = string([]byte{27, 91, 48, 109})disableColor = false
)func main() {word := "I love you"fmt.Println(black, word, reset)fmt.Println(red, word, reset)fmt.Println(green, word, reset)fmt.Println(yellow, word, reset)fmt.Println(blue, word, reset)fmt.Println(magenta, word, reset)fmt.Println(cyan, word, reset)fmt.Println(white, word, reset)
}

让shell终端和goland控制台输出彩色的文字相关推荐

  1. python 输出彩色字体代码,python实现控制台输出彩色字体

    python控制台输出彩色字体,供大家参考,具体内容如下 import ctypes, sys STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE = -11 STD_E ...

  2. 通过js在控制台输出彩色字体和placeholder的样式设置(记录)

    通过js在控制台输出彩色字体 代码: var e = "%c";var n = "color:red;text-shadow:5px 5px 2px #fff, 5px ...

  3. IDEA控制台输出彩色字体和彩色背景

    今天休息的时候突发奇想在平时写代码的时候报错的话,控制台会输出红色字体.然后我就在想控制台能不能输出其他颜色的字体❓.在好奇心的驱使下经过搜索发现IDEA控制台是可以输出彩色字体的✨,甚至背景颜色都可 ...

  4. C/C++ 控制台输出彩色文本(改变局部字体的颜色)

    我写了一个输出彩色文本的函数: void COLOR_PRINT(const char* s, int color) {HANDLE handle = GetStdHandle(STD_OUTPUT_ ...

  5. JavaScript 控制台输出彩色字

    单个样式 在console中使用%c占位符可以使输出文字拥有样式 实例 console.log("这是文字%c这是红色文字","color: #ff0000") ...

  6. 实现Google测试框架及输出彩色的文字

    1.使用 Google 测试框架 git clone https://gitee.com/maureen-liu/googletest.git cd googletest mkdir mybuild ...

  7. 控制台也能炫-chrome浏览器控制台输出彩色文字

    前些时间做一个前后端通信的系统,在调试的过程中每次刷新页面都有很多输出,乱的很,所以自己又加了几个颜色的输出,console.js内容如下: var sq = {log: function (s, c ...

  8. c++ 在控制台输出彩色字体

    作为控制台程序,只需要输出文件即可:但是将不同级别的消息用不同的颜色显示, 一般需要用一些特殊的控制命令来控制当前的颜色: 比如, 具体控制命令的格式参考: http://t.csdn.cn/JQyu ...

  9. python 控制台输出彩色文字及背景

    语法: \033[显示方式;前景色;背景色m 上面的语法中,第一个参数"显示方式",用于指定显示方式的值,控制台中的显示方式值及说明如下表所示. 显示方式 说明 显示方式 说明 0 ...

最新文章

  1. pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot
  2. Android数据库 之 SQLite数据库
  3. 软件自动升级ftp服务器,国人自己的专业FTP服务器软件(上)
  4. 【深度学习】深入浅出CRF as RNN(以RNN形式做CRF后处理)
  5. 什么是以太网?—Vecloud微云
  6. 129. 火车进栈【栈】
  7. SAP Spartacus的产品主数据模型
  8. 站在面试官角度,看求职与内卷
  9. mysql关闭显示无权限_如何关闭mysql远程登录权限
  10. 缩时摄影制作软件——GlueMotion for Mac支持m1
  11. Ubuntu Geany打开文件乱码的解决方法
  12. web 前端(轮番插件)
  13. os_pend_multi.c
  14. Iphone6/6s刷机常见问题
  15. 工业设计公司在设计时有哪些注意的地方
  16. springcloud微服务
  17. Cell Genomics封面|北大吴华君组利用空间多组学技术解析肿瘤内空间异质性(附招聘)...
  18. Hystrix - 阻断器
  19. Kubernetes可视化界面及监控安装
  20. 程序员必备的10款工具软件

热门文章

  1. STM32F103mini教程学习总结与心得(四)---->看门狗
  2. python中如何创建一个空列表_Python创建空列表的字典2种方法详解
  3. 广联达登录显示服务器异常去回答,广联达设置服务器异常5
  4. python size和count_groupby 的妙用(注意size和count)
  5. 洛谷——P1317 低洼地
  6. Opencv之以亚像素精度获取图片的ROI--cv.getRectSubPix
  7. Eigen教程(1)之简介
  8. QT生成可执行的EXE程序
  9. TypeScript 的声明文件的使用与编写
  10. BZOJ 4037 [HAOI2015]数字串拆分 ——动态规划