1

我用 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

我怎样才能让它接受标准输入?

4

0 回答 0