我目前正在使用 Groovy 脚本配置 Jenkins 管道。
在 Groovy 脚本内部,在其中一个阶段,我正在执行 Shell 脚本,如下所示:
pipeline {
parameters {
}
agent {
docker {
}
}
stages {
stage('abc') {
steps {
script {
sh '''#!/bin/bash -x
currentYear = `date +"%Y"`
echo ${currentYear}
'''
}
}
}
}
}
日期计算工作正常。但是 echo 命令没有显示任何内容。任何进一步使用此变量都会产生空白。
任何人都可以帮我理解为什么这个变量没有任何值吗?
sh
步骤方法的输入参数对于 shell 解释器在语法上无效。更新参数来解决问题会产生更好的结果:
sh '''currentYear=`date +"%Y"`
echo ${currentYear}'''
// 2023
请注意,
currentYear
的作用域为sh
步骤方法,因此您可能希望将其分配给 Groovy 变量,而不是管道重用。