引言
Jenkins job 中会自定义一些变量,这些变量将被不同的插件访问。工作中有遇到一个坑,就是变量值中含有空格时,当变量做为参数调用 Python 函数时,空格后面的内容会被截断,本文将解决这个问题。
内容提要:
- 定义变量
- Execute Python script 插件访问变量
- Execute shell 插件访问变量
定义变量
Jenkins job 中通过 Add Parameter 定义变量了一个 String 类型的变量 Project_Name, 默认值是含有空格的。
Execute Python script 插件访问变量
执行 Python 脚本,通过 os.getenv(‘Project_Name’) 访问变量,打印的值是 Project XXX
Execute shell 插件访问变量
执行 Shell 命令,可以通过 ${Project_Name} 或 %{Project_Name}% 访问变量
通过 echo 命令输出的变量值是正常的 Project XXX
但是做为参数调用 python 脚本,会有意想不到的结果。
传入 $ {Project_Name } 作为参数,变量值是 Project,空格后面的内容就被截断了。
为了能取到完整的变量值,需要加到 " ", " ${Project_Name} " 获取到的值就是完整的 Project XXX