首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从外部命令获取ANSI颜色的输出

从外部命令获取ANSI颜色的输出
EN

Stack Overflow用户
提问于 2012-06-24 22:23:37
回答 1查看 379关注 0票数 0

我正在为watchr编写一个运行单元测试的小脚本。

当前脚本使用system()运行测试,并以彩色显示它们。

我正在尝试添加libnotify功能,但为此我需要解析输出并与正则表达式进行匹配,以便通知显示为绿色或红色。

system()不返回输出,%x返回,但puts p不显示颜色,我需要它来快速查看哪个测试失败了。一种选择是运行两次测试-一次用于在终端窗口中显示,第二次用于检查要显示的通知,但我宁愿避免这种情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-24 22:49:53

puts可以显示颜色。问题是,当您使用%x运行时,您的PHP测试运行器很可能会关闭彩色输出,因为它认为它不是在终端下运行。

如果您在shell中执行run_php_test | less,也会发生同样的事情。要解决这个问题,您需要在PHP测试运行器上强制使用彩色输出。

编辑

使用pty运行子流程的最简单方法

代码语言:javascript
复制
require 'pty'
puts PTY.spawn('run_php_test')[0].read
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11178228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档