我想簡要地改變我的終端輸出的顏色,運行一個Ruby腳本,以便在變了顏色,「睡眠」的第二個標準輸出打印,再改回來。我知道如何設置顏色,如提示:變化的bash終端輸出的色彩,同時運行Ruby腳本
PS1="\e[0;36m[\w] \e[m "
我想我需要寫一個bash函數來做到這一點。那將是什麼樣子?
我想簡要地改變我的終端輸出的顏色,運行一個Ruby腳本,以便在變了顏色,「睡眠」的第二個標準輸出打印,再改回來。我知道如何設置顏色,如提示:變化的bash終端輸出的色彩,同時運行Ruby腳本
PS1="\e[0;36m[\w] \e[m "
我想我需要寫一個bash函數來做到這一點。那將是什麼樣子?
你可以在Ruby中做到這一點(假設你是在Linux,Windows需要一個庫/寶石的名字我不記得的時刻),使用普通的代碼,你會在bash中使用,例如
puts "\e[31m etc Your text here."
復位到正常的顯示:
puts "\e[0m"
調整的味道。
您也可以使用術語Ansicolor寶石,將其從正在運行的腳本中改變。
這裏是一個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
也可以使用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
這是不壞,但我想這樣做終端改變,而不包括color-複製在每個「放置」行中進行特定的打印。我想知道是否可以延長'puts'來始終以指定的顏色打印(因爲我只用put打印)。 – jumar
我會使用Logger類(http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html),並創建繼承它的類,並且包裝所有以適當的顏色輸出。然後,您可以將您的「自定義」記錄器傳遞給腳本,Rails,隨時隨地,然後調用相應的輸出。你甚至可以爲warn/info/debug設置不同的顏色。 –
你只需要打印出來的代碼,當你想改變它;也就是說,你可以做'puts'(或'print')'「\ E [31米」'你的腳本的開頭和終端文本顏色將保持紅色(或者你選擇的顏色),直到你打印一份ANSI色標。 – iamnotmaynard