我无法使用以下代码将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
答案 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)
}
}