ruby - 实现 Ruby 的 IO.popen() 和 system() 的替代品

标签 ruby

Ruby 中的 IO.popen() 和 system() 严重缺乏一些有用的功能,例如:

  • 获取函数的返回值
  • 同时捕获 stdout 和 stderr(单独和合并)
  • 在不产生额外的 cmd.exe 或/bin/sh 进程的情况下运行

Python 有一个模块“subprocess”,我正在考虑将其用作 Ruby 中类似模块的灵感。现在回答问题:

  • Ruby 程序员如何解决上述问题,例如在执行 popen() 调用时获取返回值?
  • 这是否已经实现?

最佳答案

看看标准的 Ruby 库 open3 .这将使您能够访问标准输入、标准输出和标准错误。

还有一个名为 open4 的外部项目,它允许您在不使用魔术变量名称的情况下获取退出状态。

关于ruby - 实现 Ruby 的 IO.popen() 和 system() 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154598/

相关文章:

ruby-on-rails - 是否有支持 MongoDB 和 Devise 的 Rails 管理界面?

ruby - 在Ruby中准备和执行SQLite语句

ruby-on-rails - Rails、gmaps4rails 不适用于 https

ruby - 在 ruby​​ 中以散列形式返回结构数据

ruby - 是否可以比较 Ruby 中的私有(private)属性?

ruby - 如何使用 Ruby 从头开始​​初始化对象和设置属性?

ruby-on-rails - therubyracer gem 安装错误 - mac 10.9

ruby-on-rails - 关闭 Capybara::ElementNotFound/避免嵌套救援

ruby-on-rails - Ruby on Rails 教程 : Defining a hash with symbol keys

ruby - 如何通过 belongs_to 按外部 id 和本地属性进行过滤?