1

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

我试过:

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

然而,Ruby 会一直等到第一个系统调用完成,然后才继续进行下一个系统调用。

是否有可能做到这一点?我试过system('./script', 'input1')了,但也没有用。也没有运气exec

4

2 回答 2

2

您应该从 Ruby标准库中查看Open3 库。它使您可以更好地控制“脱壳”。

output, status = Open3.capture2("./script", :stdin_data => "I am STDIN")
于 2013-07-30T20:44:36.607 回答
-2
#!/usr/bin env ruby

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

system("./script #{input1} #{input2}")
于 2013-07-30T20:32:44.220 回答