当前位置: 首页 > 面试题库 >

在每个循环Jenkinsfile中的两个列表中同时传递项目

连文栋
2023-03-14
问题内容

我有一个列表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] }

我希望将 foocol中 的列表项一一注入到上面的shell脚本中。有没有一种方法可以将两个列表项一次传递到上面的shell脚本中?

我们可以做点什么 (foo,col).each

或使用for循环 for(x in foo && y in col)

引用我的Jenkinsfile

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}\" """
        }
      }
    }
}

}}


问题答案:

我相信转置是您要使用的方法,将两个列表配对,然后可以遍历结果:

[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"


 类似资料:
  • 问题内容: 我有两个长度相同的列表对象,并且要渲染互补数据,有没有一种方法可以同时渲染两个列表对象。 或类似的东西? 问题答案: 如果两个列表的长度相同,则可以在视图中作为模板上下文返回,从而生成一个二值元组列表。 例: 然后,您可以在模板中编写: 另外,在此处查看有关模板标记的Django文档。它提到了使用它的所有可能性,包括漂亮的示例。

  • 问题内容: 学生的姓名(String [])和相应的标记(int [])存储在不同的数组中。 如何使用Java中的每个循环一起遍历两个数组? 一种简单的方法是在同一循环中使用索引变量。有什么好办法吗? 问题答案: 潜在的问题实际上是您应该将两个数组绑定在一起,并且仅跨一个数组进行迭代。 这是一个非常简单的演示-您应该使用getter和setter,还应该使用a 而不是数组,但这证明了这一点:

  • 到目前为止,这是我的代码,我很难定义字符串和UInt32从列表数组中选择的每个循环。谁能告诉我如何克服这个问题?

  • 问题内容: 如果输入为 我需要输出为 我试过了 但是它给出了错误 如何修改代码以获得所需的输出? 问题答案: 您可以在此处找到一系列迭代方法:http : //docs.python.org/2.7/library/itertools.html#recipes 编辑 :Python 3 https://docs.python.org/3/library/itertools.html#itertoo

  • 问题内容: 这是我的内容: 在Jenkins中使用Pipeline插件执行作业时,仅打印列表中的第一项。 有人可以向我解释这种奇怪的行为吗?是虫子吗?还是只是我不了解Groovy语法? 编辑 :预期的作品: 问题答案: 此处接受的答案指出这是一个已知的错误,并且使用了对我不起作用的解决方法,因此,我将提供我最近发现的更新。 尽管有了JENKINS-26481的解决方案(在撰写本文时,它还算是最近的

  • 我试图在我的RecycerViewdAdapter类中创建cv应用程序,我想传递列表和一个模型类,我已经传递了第二个虚拟数据。我正在跟踪这个stackoverflow链接,两个ArrayList,一个RecycerView适配器 我想实现这个ui 第二张当前截图 在educution_item下面。 subjectList下面