ruby 输出彩色内容到控制台

Posted linying1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 输出彩色内容到控制台相关的知识,希望对你有一定的参考价值。

程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色符号等来做标识。

ruby 也支持设置输出内容的颜色,比如运行以下代码:

以下内容是百度到的,因发现很多博客都是同样的写法,所以出处反而没法写了。。。

puts "33[1mBackground Colors...33[0m
"
puts "   33[40m33[37mBlack (40), White Text33[0m
"
puts "   33[41mRed (41)33[0m
"
puts "   33[42mGreen (42)33[0m
"
puts "   33[43mYellow (43)33[0m
"
puts "   33[44mBlue (44)33[0m
"
puts "   33[45mMagenta (45)33[0m
"
puts "   33[46mCyan (46)33[0m
"
puts "   33[47mWhite (47)33[0m
"

控制台能看到这样的结果:

技术图片

我们研究这个输出的内容:"33[47mWhite (47)33[0m ",发现重点就是 33[47m33[0m ,剩下的是输出的内容。

基于该原理,我们可以写出通用的调用方式:

def puts_with_style(style_index, *contents)
  contents.each do |content|
    puts "33[#{style_index}m#{content}33[0m
"
  end
  nil
end

做了下循环调用测试,样式最高支持到 107,运行下面代码可测试:

108.times do |index|
  puts_with_style(index, index, "   color")
end

猜想这可能是控制台的输出规则,尝试了下 golang,发现该方式也是可行的。那我估计 python 等其他语言也是一样,大家可以尝试尝试。

以上是关于ruby 输出彩色内容到控制台的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 集成 Logback 日志:控制台彩色日志输出 + 日志文件输出

使用 ANSI / VT100 代码在 PowerShell 控制台中输出彩色文本

Python名片管理系统 彩色控制台版

如何将快速彩色输出写入控制台?

利用正则实现彩色控制台输出

Python猜拳小游戏 彩色控制台版