Bre*_*ham 3 ruby unix scripting
这是一个简单的Ruby脚本:
puts `ls -laG`
Run Code Online (Sandbox Code Playgroud)
在OS X的ls中,-G用于颜色.
在bash下运行时,我得到颜色输出.当从Ruby脚本运行上述内容时,我在结果输出中看不到颜色或ANSI转义序列.
从我读过的,我的猜测是因为脚本没有像tty一样运行.有没有办法运行命令,好像它是在真正的tty会话下运行 - 或类似的东西?
查看OS X中的ls手册页,我看到了一些提到的环境变量.CLICOLOR启用颜色(如-G)和CLICOLOR_FORCE(强制颜色甚至非终端输出).
所以我想你会得到你想要的......
puts `env CLICOLOR=1 CLICOLOR_FORCE=1 ls -la`
Run Code Online (Sandbox Code Playgroud)
您可以在.profile中设置环境变量.在我的示例中,我只是使用env命令来确保它们在命令行上设置.我没有使用-G选项,因为CLICOLOR做了相同的操作.
| 归档时间: |
|
| 查看次数: |
1935 次 |
| 最近记录: |