【问题标题】:Change Bash terminal output color while running a Ruby script运行 Ruby 脚本时更改 Bash 终端输出颜色
【发布时间】:2013-04-05 04:17:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby bash


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      重置为正常显示:

      puts "\e[0m"
      

      根据口味调整。

      【讨论】:

      • 这还不错,但我想在不包括每个“puts”行中特定颜色的打印的情况下进行终端更改。我想知道是否可以将“puts”扩展为始终以指定颜色打印(因为无论如何我只使用 puts 打印)。
      • 我会使用 Logger 类 (ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html),并创建一个扩展它的类,并以适当的颜色包装所有输出。然后,您可以将“自定义”记录器传递给脚本、Rails、任何您想要的地方,然后调用适当的输出。您甚至可以为警告/信息/调试设置不同的颜色。
      • 只需要在需要更改的时候打印出代码即可;也就是说,您可以在脚本的开头执行puts(或print)"\e[31m",并且终端文本颜色将保持红色(或您选择的任何颜色),直到您打印另一个ANSI颜色代码。跨度>
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        也可以使用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? 复制而来的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-18
          • 2019-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          相关资源
          最近更新 更多