与其他变量连接时从 GitLab 中的秘密变量获取值
Get the value from secret variables in GitLab when concatenated with other variable
我在 Gitlab 变量中有变量名 URL_DEV(设置 > CI/CD > 变量)。我想使用 ${CI_ENVIRONMENT_NAME} 获取值。
示例:echo URL_${CI_ENVIRONMENT_NAME} 应该提供来自 Gitlab 变量的值,但它输出为 URL_DEV 但不打印值。
#Tried below commands
$ echo $URL_${CI_ENVIRONMENT_NAME}
output: DEV
$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $APP
output: URL_DEV
$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $(echo $APP)
output: URL_DEV
预期输出应该是变量的值
echo $URL_${CI_ENVIRONMENT_NAME}
expected output: https://www.example.com
您需要使用 bash indirect expension。此代码段有效:
URL_DEV="https://google.com"
ENV="DEV"
SITE="URL_"$ENV
echo $SITE
URL_DEV
curl -k ${!SITE}
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
我在 Gitlab 变量中有变量名 URL_DEV(设置 > CI/CD > 变量)。我想使用 ${CI_ENVIRONMENT_NAME} 获取值。 示例:echo URL_${CI_ENVIRONMENT_NAME} 应该提供来自 Gitlab 变量的值,但它输出为 URL_DEV 但不打印值。
#Tried below commands
$ echo $URL_${CI_ENVIRONMENT_NAME}
output: DEV
$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $APP
output: URL_DEV
$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $(echo $APP)
output: URL_DEV
预期输出应该是变量的值
echo $URL_${CI_ENVIRONMENT_NAME}
expected output: https://www.example.com
您需要使用 bash indirect expension。此代码段有效:
URL_DEV="https://google.com"
ENV="DEV"
SITE="URL_"$ENV
echo $SITE
URL_DEV
curl -k ${!SITE}
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>