在多行shell中使用jenkins变量

在多行shell中使用jenkins变量,shell,jenkins,Shell,Jenkins,给定以下脚本: node { def hello = "Hello" stage("Greetings") { echo "${hello}world!" } } 日志显示HelloWorld 当我尝试在多行sh命令中使用此命令时 node { def hello = "Hello" stage("Greetings") { sh ''' echo ${hello}world! ''' } } 该变量被视为一个空字符串,导致world

给定以下脚本:

node {
  def hello = "Hello"
  stage("Greetings") {
    echo "${hello}world!"
  }
}
日志显示HelloWorld

当我尝试在多行sh命令中使用此命令时

node {
  def hello = "Hello"
  stage("Greetings") {
    sh '''
     echo ${hello}world!
    '''
  }
}
该变量被视为一个空字符串,导致world


为什么以及如何修复它?

您可以尝试使用双引号而不是单引号。试试这个,看看是否有效

node {
  def hello = "Hello"
  stage("Greetings") {
      sh """
        export GREETINGS=5
        echo ${hello}world \$GREETINGS times!
      """
  }
}

谢谢,我更新了你的答案,所以它也涵盖了一个带有环境变量的用例