如何在Ruby中接受Open3.popen2e的输入

时间:2016-07-28 15:55:38

标签: ruby io popen3

我在Ruby中创建了一个包装器,它做了很多东西,设置环境变量,然后使用Open3库执行外部程序,将参数(和ENV)传递给外部进程。

一切都运行良好,我从外部流程获得实时输出。但是,偶尔外部程序会要求输入。我现有的代码不适用于此,提供输入似乎不起作用。

这是使用options运行外部程序的函数。

def run_tf(options = '--help')
  puts '-= Begin TerraForm Output =-'

  exit_code = 0

  Open3.popen2e("terraform #{options}") do |i, oe, t|
      oe.each { |line| puts line }
      exit_code = t.value.exitstatus
  end

  puts '-= End TerraForm Output =-'

  exit_code
end

如何让它接受STDIN?

0 个答案:

没有答案