如何在 GItLab CI/CD YAML 值中转义带有以下空格的冒号?

问题描述 投票:0回答:4

我在 GitLab CI/CD 中有以下行:

  script:
    - echo "Backend image: $BACKEND_IMAGE"

但是 YAML 解释器将其视为对象。然后我用谷歌搜索了这个问题并尝试了这个:

  script:
    - echo "Backend image:: $BACKEND_IMAGE"

但它仍然不起作用,GitLab 作业失败,并显示以下内容:

工作:部署审查:脚本配置应该是一个字符串或最多 10 层深度的嵌套字符串数组

如果我完全删除冒号,它就可以正常工作。如何在 GitLab CI/CD 中创建带有冒号和后面空格的字符串值?

yaml gitlab-ci
4个回答
9
投票

如果用单引号将字符串括起来,它应该可以工作:

script:
    - 'echo "Backend image: $BACKEND_IMAGE"'

0
投票

在经历了几个选项之后,我发现了下面这个简单的解决方案 像这样使用,

Image="Backend image:"
export RESULT="$(echo "$Image" $BACKEND_IMAGE)" 
echo "Result is " $RESULT

0
投票

我将冒号拉出到变量中。

simple_echo_stage:
  stage: echo
  before_script:
    - COLON=":"
  script:
    - echo "This is a message${COLON} The colon was defined in before_script."

-1
投票

也许您可以尝试先将字符串放入变量中,然后回显该变量:

- ECHO_STRING=$(echo "Backend image:: $BACKEND_IMAGE")
- echo $ECHO_STRING

如果没有,请尝试:

- ECHO_STRING=$(echo "Backend image:\ $BACKEND_IMAGE" | tr -d '\')
- echo $ECHO_STRING>>

(将

ECHO_STRING
替换为更有意义的变量名称)

© www.soinside.com 2019 - 2024. All rights reserved.