在声明性管道内的 shell 脚本中传递 Jenkins 参数值时发生错误替换错误

Bad Substitution error while passing Jenkins Parameter value in shell script inside Declarative pipeline

这是我在 Jenkins 声明式管道中传递参数值的代码,但是当我执行时收到此错误

T@tmp/durable-64ccbb6b/script.sh:第 4 行:${params.InputValue}:错误替换

                  sh '''
                  #!/bin/bash -xe
                  printf '%s\n' /dev/sd{e..z} | head -n "${params.InputValue}" > volumelist.txt
                  cat volumelist.txt
                  '''

我尝试了几乎所有 google 搜索 Bad substitution。还是摆脱不了。有人可以帮我解决这个问题吗??

看看 Groovy 的 string interpolation

tl;dr 使用 """ 而不是 ''':

sh """
  printf ${params.InputValue}
"""