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

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

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

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

这是一个显示所有终端颜色的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 

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

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

要重置为正常显示:

 puts "\e[0m" 

调整味道。

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

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

也可以使用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输出中复制的