【发布时间】:2020-06-21 06:00:05
【问题描述】:
我有 test$001 作为 Jenkins 秘密文本凭据中的值。稍后在管道脚本中,我将访问该值并将其写入如下所述的 yaml 文件,该文件用作 K8S configmap。
问题在于值中的美元符号。
environment {
TEST_CRED=credentials('TEST_CRED')
}
脚本.sh
cat << EOF > test.yaml
...
data:
TEST: ${TEST_CRED}
EOF
预期:test$001
打印:test$$001(注意额外的美元符号会自动插入)
我尝试了所有可能来逃避这个美元符号,但没有任何效果。
TEST_01: '${TEST_CRED}'
TEST_02: ${TEST_CRED}
TEST_03: '$${TEST_CRED}'
TEST_04: $${TEST_CRED}
TEST_05: "$${TEST_CRED}"
TEST_08: $TEST_CRED
【问题讨论】:
-
您能否尝试将
test\$001而不是test$001放在 Jenkins 秘密文本凭据中,并尝试检查您是否获得了正确的值。因为根据您的测试用例,没有任何工作,这意味着在存储值时,Jenkins 用另一个 $ 符号对其进行了转义,因此 Jenkins 可以处理它。 -
@ShubhamVaishnav 我试过你的建议,现在这就是我得到的
test\$$001