我在管道中有一个全局变量,例如BACKUP_DIR_NAME
,在管道中的shell脚本中,我想使用它来构建路径,因此有以下代码-
BACKUP_DIR_NAME="10-04-2020"
pipeline {
agent any
stages {
stage('First') {
steps {
script {
sh '''
BACKUP_DIR_PATH="/home/oracle/SeleniumFramework/SeleniumResultsBackup/"$BACKUP_DIR_NAME"/"
echo "Directory path is "$BACKUP_DIR_PATH
'''
}
}
}
}
}
执行此操作后,我可以看到BACKUP_DIR_NAME
的值被评估为空。您能帮我纠正上面的代码吗?
答案 0 :(得分:0)
您在sh
步骤中混合了两种类型的变量。在第一行中,您尝试访问Groovy变量并对其值进行插值以构造shell变量。在第二行中,您希望访问此shell变量。
要满足第一部分,您需要使用双引号来构造支持变量插值的Groovy字符串。为了满足第二部分的要求,您需要对\$
进行转义以防止对$BACKUP_DIR_PATH
进行插值。
BACKUP_DIR_NAME="10-04-2020"
pipeline {
agent any
stages {
stage('First') {
steps {
script {
sh """
BACKUP_DIR_PATH="/home/oracle/SeleniumFramework/SeleniumResultsBackup/"$BACKUP_DIR_NAME"/"
echo "Directory path is "\$BACKUP_DIR_PATH
"""
}
}
}
}
}