我有一个列表foo = ['tea',''sugar','milk']和col = ['black','white','pink'],我要做的是嵌套循环
def foo = ['tea','sugar','milk']
def col = ['black','white','pink']
[foo, col].transpose().each { x, y ->
sh """aws deploy push --application-name "${x}" --source "${y}" """
}期望结果
--application-name "tea" --source "black"
--application-name "sugar" --source "white"
--application-name "milk" --source "pink"我得到的结果
[Pipeline] script
[Pipeline] {
[Pipeline] echo
--application-name "[tea, black]" --source "null"
[Pipeline] echo
--application-name "[sugar, white]" --source "null"
[Pipeline] echo
--application-name "[milk, pink]" --source "null"
[Pipeline] }
[Pipeline] // script
[Pipeline] }我希望将foo和col中的列表项逐一注入到上面的shell脚本中,有一种方法可以同时将两个列表项传递给上面的shell脚本
参考文献 loops in Groovy
我们能做些像(foo,col).each这样的事情吗?
或者可能使用for循环for(x in foo && y in col)
参考我的詹金斯档案
pipeline {
agent any
stages {
stage('hello'){
steps{
script{
def foo = ['tea','sugar','milk']
def col = ['black','white','pink']
[foo, col].transpose().each { x, y ->
sh """aws deploy push --application-name "${x}" --source "${y}" """
//echo """--application-name \"${x}\" --source \"${y}\" """
}
}
}
} }}
发布于 2018-11-08 22:37:03
我相信转置是你想要的方法,把这两个列表对起来,然后你可以迭代结果:
[foo, col].transpose().each { x, y ->
...
}更新:
这就是我的目标。请注意,为了简洁起见,移除了一些参数。
def foo = ['tea','sugar','milk']
def col = ['black','white','pink']
[foo, col].transpose().each { x, y ->
println """--application-name "${x}" --source "${y}" """
}结果
--application-name "tea" --source "black"
--application-name "sugar" --source "white"
--application-name "milk" --source "pink"https://stackoverflow.com/questions/53217148
复制相似问题