Jenkins -使用单引号将变量从groovy传递到shell

pqwbnv8z  于 2023-05-28  发布在  Jenkins
关注(0)|答案(1)|浏览(206)

我在Jekins中有一个步骤,在那里我执行curl命令。要使用凭证TOKEN,我必须将我的shell脚本放入三个单引号中,否则我会得到错误:solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 18, column 33.
但是现在当使用三重单引号时,我不能从shell访问我的apiUrl变量。

withCredentials([string(credentialsId: 'TOKEN', variable: 'TOKEN']) {
    def exampleUrl = "https://example.com"
    sh '''
    #!/usr/bin/env bash

    RESPONSE_CODE=$(curl -o body.txt --write-out "%{http_code}" --request GET \
    --url $exampleUrl \
    --header "accept: application/json" \
    --header "authorization: Token $TOKEN")
    '''
}

有没有比使用环境变量更优雅的解决方案,以便我可以访问凭据TOKEN和变量exampleUrl
谢谢你

vfhzx4xs

vfhzx4xs1#

您可以在sh块之前将它们设置为环境变量,然后您应该能够访问它们。

env.exampleUrl = "https://example.com"

相关问题