shell - 如何将 groovy 变量传递给 Jenkinsfile 中的 shell 脚本?
问题描述
在脚本部分下的 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]}" ')
}
}
解决方案
您必须使用正确的字符串插值"${variable}"
来访问变量的值。
sh(returnStdout: true, script: 'ssh user1@192.168.1.12 echo deleting "${prdirectory_lists[k]}" ')
Jenkins 官方文档有一些很好的例子:字符串插值
推荐阅读
- php - Laravel 安装错误:[ErrorException] file_get_contents(): read of 8192 bytes failed with errno=9 Bad file descriptor
- php - php 应用程序中的 Tron 钱包集成
- android - 如何动态设置颤动闪屏中的持续时间?
- php - 一种形式写入数据库,另一种没有
- c++ - C++ 派生类和基复制构造函数作为指针
- java - 有没有一种快速的方法可以使用 java 获取设备上的所有音频文件?
- c++ - 使用 Visual Studio 2019 如何为没有解决方案的 C++ 代码克隆 github 存储库并构建和运行它们?
- elasticsearch - 如何在 Elasticsearch 中仅向前创建 ngram?
- git - 如何使用 SSH 登录 Github 并在命令行中创建新的存储库?
- database - Neo4j 图形性能:我应该在单独的数据库中缓存慢查询吗?