如何在shell脚本中使用Jenkins参数

IMR*_*AIK 17 shell jenkins jenkins-cli jenkins-pipeline

我想使用我们在Jenkins作业中定义的参数作为同一作业中shell命令的参数.

我使用以下参数创建了参数化构建:

high.version: 234
low.version: 220
Run Code Online (Sandbox Code Playgroud)

我想使用这些变量作为构建的shell脚本的参数:

/bin/bash /hai/mycode/scripts/run_script.sh high.version
Run Code Online (Sandbox Code Playgroud)

我如何在同一个工作中使用这些参数?

Flo*_*aub 14

真正帮助我的是Hudson:如何将参数传递给shell脚本

解决方案:即使您以小写形式定义变量,变量也是大写的!

  • 看起来他们同时更改了它并且变量区分大小写。 (2认同)

Ale*_*x O 11

Jenkins 使用参数名称创建环境变量.

这里需要说明的是,詹金斯将做了参数都没有代表有效的变量名-这些都是很难的访问bash.在您的示例中就是这种情况,因为bash变量名称不能包含该.字符.

最简单的解决方案就是你

  • 重命名参数,例如to high_versionlow_version(它们是有效的bash变量名)
  • 然后在调用脚本时使用相应的变量名称

例:

/bin/bash /hai/mycode/scripts/run_script.sh "$high_version"
Run Code Online (Sandbox Code Playgroud)

如果您不能重命名参数来表示有效的bash变量名称(例如,出于可用性原因:Jenkins向Web表单中的最终用户提供变量名称以启动构建):您仍然可以通过在输出中输入参数名称来env访问这些参数.该命令.