我用 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
我怎样才能让它接受标准输入?