Ruby 中 shell 命令的颜色输出

2024-04-28

这是一个简单的 Ruby 脚本:

puts `ls -laG`

在 OS X 的 ls 中,-G 代表颜色。

当在 bash 下运行时,我得到颜色输出。当从 Ruby 脚本运行上述代码时,我在结果输出中看不到颜色或 ANSI 转义序列。

根据我所读到的内容,我猜测这是因为脚本没有作为 tty 运行。有没有某种方法可以像在真正的 tty 会话或类似的情况下运行命令一样运行该命令?


看着OS X 中的 ls 手册页 http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/ls.1.html,我看到提到了几个环境变量。 CLICOLOR 启用颜色(如 -G)和 CLICOLOR_FORCE(甚至对非终端输出强制颜色)。

所以我想你会得到你想要的...

puts `env CLICOLOR=1 CLICOLOR_FORCE=1 ls -la`

您可以在 .profile 中设置环境变量。在我的示例中,我只是使用 env 命令来确保它们在命令行上设置。我省略了 -G 选项,因为 CLICOLOR 做了等效的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 中 shell 命令的颜色输出 的相关文章

随机推荐