【问题标题】:Groovy: controlling a shell processes I/O promptsGroovy:控制一个 shell 进程的 I/O 提示
【发布时间】:2023-03-17 12:44:01
【问题描述】:

我需要从 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()

这在该命令启动并将参数传递给它时起作用,除了所有参数都从命令传递到第一个提示符。

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

以前有人用 groovy 做过类似的事情吗?

【问题讨论】:

  • 你有没有看过这里。我也在找一样的

标签: shell groovy process input


【解决方案1】:

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

(不是 groovy 特有的,但值得一看)

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多