在运行Ruby脚本时更改bash终端输出颜色

时间:2013-04-12 15:01:38

标签: ruby bash

我想简单地改变我的终端输出颜色,运行一个Ruby脚本,以便stdout以改变的颜色打印,“睡眠”一秒,然后再更改它。我知道如何设置颜色,如提示:

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

我想我需要编写一个bash函数来执行此操作。那会是什么样的?

4 个答案:

答案 0 :(得分:2)

这是一个显示所有终端颜色的ruby脚本。 Download it或运行以下代码。

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

答案 1 :(得分:1)

你可以在Ruby中做这件事(假设你在Linux上; Windows需要一个我现在记不起的名字的图书馆/宝石),使用你在bash中使用的普通代码,例如。

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

要重置为正常显示:

puts "\e[0m"

调整味道。

答案 2 :(得分:1)

您还可以使用Term Ansicolor gem从正在运行的脚本中更改它。

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

答案 3 :(得分: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

此答案是从Colorized Ruby output

复制而来的