无论来源如何,都保存彩色输出

无论来源如何,都保存彩色输出

当源检测到其标准输出不是终端时关闭着色时,无论源如何,如何将彩色输出保存到文件中?

答案1

我设法组合的以下脚本似乎可以做到这一点:

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'pty'
PTY.spawn(*ARGV) do |r,w,pid|
  begin
    while $_ = r.gets
      STDOUT.print $_
    end
  rescue Errno::EIO
  end
end

它在伪终端中运行其 CLI 参数并将输出转发到 STDOUT。

使用示例:

./script.rb ls --color=auto >| file #file will have them ANSI color code sequences in it because ls did run in a terminal.

相关内容