2

我想简单地更改我的终端输出颜色,运行一个 Ruby 脚本,以便标准输出以更改后的颜色打印,“睡眠”一秒钟,然后将其更改回来。我知道如何设置颜色,例如提示:

PS1="\e[0;36m[\w] \e[m "

我想我需要编写一个 Bash 函数来做到这一点。那会是什么样子?

4

4 回答 4

2

这是一个显示所有终端颜色的 Ruby 脚本。下载它或运行下面的代码。

def color(index)
  normal = "\e[#{index}m#{index}\e[0m"
  bold = "\e[#{index}m\e[1m#{index}\e[0m"
  "#{normal}  #{bold}  "
end

8.times do|index|
  line = color(index + 1)
  line += color(index + 30)
  line += color(index + 90)
  line += color(index + 40)
  line += color(index + 100)
  puts line
end
于 2014-04-21T03:09:22.283 回答
1

您可以使用在 bash 中使用的普通代码在 Ruby 中执行此操作(假设您在 Linux 上;Windows 需要一个库/gem,我目前不记得其名称),例如

puts "\e[31m etc Your text here."

重置为正常显示:

puts "\e[0m"

调整口味。

于 2013-04-12T15:06:29.420 回答
1

您还可以使用 Term Ansicolor gem 从运行脚本中对其进行更改。

http://flori.github.io/term-ansicolor/

于 2013-04-12T15:09:02.070 回答
1

也可以使用Colorize gem

安装:

sudo gem install colorize

用法:

require 'colorize'

puts "I am now red.".red
puts "I am now blue.".green
puts "I am a super coder".yellow

这个答案是从How can I use Ruby to colorize the text output to a terminal?复制而来的?.

于 2015-05-13T06:07:02.607 回答