Ruby有很多方法来运行系统命令,无论是system()或exec()或反引号等等。如何在捕获输出时执行打印颜色的系统命令,但也可以在Ruby中取消?
但是,我一直在发现只有system和exec(尽可能我知道)能够打印我的一些命令的彩色输出,同时还提供了一个允许我取消命令的PID。
是否有任何其他方式从Ruby命令行脚本运行系统命令,以便我能够满足以下要求?
- 见的彩色输出(带组织帮助)
- 捕捉输出到一个变量
- 得到一个PID,所以如果我需要(我已经有这个代码,我可以取消执行,我只需要PID)
也许Process.spawn并传入IO重定向?我见过Foreman在日志聚合过程中为每个pid的服务器名称预先设置了所有输出日志https://github.com/ddollar/foreman/blob/master/lib/foreman/process.rb#L54 –
至于彩色输出,Ruby根本不会过滤输出。如果输出包含ANSI颜色代码并且您捕获输出,您将获得它们。 –
你应该可以用Ctrl + C来取消脚本。 – AMACB