如何使用system()命令传入用户输入?

时间:2013-07-30 20:23:17

标签: ruby shell command

我想使用system("insert shell command here")并传入一个脚本。但是,此脚本需要用户输入。我也希望传入用户输入。我该怎么做?

我试过了:

system('./script')
system('input1')
system('input2')

但是,Ruby会等到第一次系统调用完成后才会进入下一次系统调用。

有可能这样做吗?我已经尝试了system('./script', 'input1'),但这也没有用。 exec也没有运气。

2 个答案:

答案 0 :(得分:1)

您应该从Ruby stdlib查看Open3 library。它使您可以更好地控制“炮轰”。

output, status = Open3.capture2("./script", :stdin_data => "I am STDIN")

答案 1 :(得分:-2)

#!/usr/bin env ruby

input1 = ARGV[0]
input2 = ARGV[1]

system("./script #{input1} #{input2}")