在脚本部分的Jenkinsfile中,我使用以下代码返回类似以下的输出。
deleting 1
deleting 2
deleting 3
我尝试了以下脚本,但似乎无法正常工作。
script {
prdirectory_lists = ['1','2','3']
def size3 = prdirectory_lists.size()
for(k=0;k<size3;k++){
sh(returnStdout: true, script: 'ssh user1@192.168.1.12 echo deleting prdirectory_lists[k] ')
//sh(returnStdout: true, script: 'ssh user1@192.168.1.12 echo deleting ${prdirectory_lists[k]} ')
//sh(returnStdout: true, script: 'ssh user1@192.168.1.12 echo "deleting ${prdirectory_lists[k]}" ')
}
}
答案 0 :(得分:0)
尝试一下:
sh returnStdout: true,
script: """ssh user1@192.168.1.12 echo "deleting ${prdirectory_lists[k]}" """
答案 1 :(得分:0)
您必须使用正确的字符串插值"${variable}"
来访问变量的值。
sh(returnStdout: true, script: 'ssh user1@192.168.1.12 echo deleting "${prdirectory_lists[k]}" ')
Jenkins官方文档对此提供了一些很好的示例:String interpolation
答案 2 :(得分:0)
您始终使用不带内插功能的单引号字符串
以下方法应该起作用:
def list = ['1','2','3']
list.each {item ->
sh(returnStdout: true, script: "ssh user1@192.168.1.12 echo deleting $item")
}
总共在Groovy中有三种类型的字符串:
在这种情况下,我相信双引号字符串将最适合您