1

我们正在使用 groovy 执行具有调试模式的 bash 脚本set -x。我们像这样运行它:

    def proc = "bash hello.sh".execute()  
    proc.in.eachLine { line -> println line }
    proc.waitForOrKill(100*1000)             

当我们使用 直接从命令提示符运行它时bash hello.sh,我们会看到 echo 行和 + 行:

Tue Jun 11 10:52:42 IDT 2013:: Running 
+ mkdir -p folder
+ tar -xzf file
...

但是当我们从 groovy 运行它时,只有回波线是可见的!

Tue Jun 11 10:52:42 IDT 2013:: Running

这是怎么回事?这是一个 groovy/Java 错误吗?

4

1 回答 1

2

尝试添加

proc.consumeProcessOutput(System.out, System.err)

在您等待它完成之前(代替您的proc.in.eachLine线路)

于 2013-06-11T08:10:03.633 回答