Groovy:控制shell处理I / O提示

时间:2011-05-27 01:33:43

标签: shell groovy process input

从groovy我需要运行一个我没写过的shell命令。此命令提示用户输入各种输入值。所以我试图弄清楚如何响应groovy脚本中的提示。到目前为止,我有:

Process proc = command.execute()
parms.each() {value -> 
    proc << String.valueOf(value) + "\n"
}
StringBuilder output = new StringBuilder()
proc.waitForProcessOutput(output, output)
return output.toString()

这适用于该命令启动并将parms传递给它,除了所有parms都从命令传递给第一个提示符。

我是groovy的新手,所以我无法弄清楚如何处理这个问题。理想情况下,我希望能够获取每个提示并给出匹配的答复,而不是这种方法对提示顺序做出了一个脆弱的假设。

有没有人在使用groovy之前做过这样的事情?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用expectj,这是“expect”的jvm实现。

(不具有常规,但值得一看)

HTH