将标准输出存储到列表groovy中

时间:2017-05-18 12:37:58

标签: groovy

我无法使用以下代码将shell命令的标准输出存储到列表中。它似乎将每个字符存储为列表元素,而不是每行产生的整个字符串。

def implementedBranchName = []

def getImplementedBranches() {
    def cmd = "/usr/bin/tool search status Pending"
    Process process = cmd.execute()
    def output= process .in.text;
    implementedBranchName = output.each{ println it }
    def size = implementedBranchName.size()
    for ( int i = 0; i < size; i++) {
      println(implementedBranchName[i])
    }
}

当前输出:

F
O
O

B
A
R

期望的输出:

FOO
BAR

2 个答案:

答案 0 :(得分:1)

你可以改变

implementedBranchName = output.each{ println it }

要:

implementedBranchName = output.split()

答案 1 :(得分:0)

Groovy中也有“ eachLine”。

def getImplementedBranches() {
    def cmd = "/usr/bin/tool search status Pending"
    Process process = cmd.execute()
    process.in.eachLine { line ->
        println(line)
    }
}