[英]Shell script output to array in groovy
我需要将此 shell 脚本“git diff --name-only commit2 commit1”的结果 output 到 groovy 中的数组。 我该怎么做?
已经尝试创建变量
def diff = sh(script: "git diff --name-only commit2 commit1", returnStdout: true)
然后使用 Pattern 和 Matcher 处理它,但可能由于它的格式,它总是返回一个空数组。
shell 脚本的 output 类似于:
directory/file1.java
directory/file2.java
找到了一种使用 bash 的方法,但无法弄清楚如何使其适应 groovy (mapfile -t my_array <( my_command ))
如果您想将 output 作为列表获取,其中每一行都是该列表中的一个单独条目,您可以在sh
步骤的 output 上调用split('\n')
:
def diff = sh(script: "git diff --name-only commit2 commit1", returnStdout: true).trim().split('\n')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.