如何在 GItLab CI/CD YAML 值中使用以下 space 转义冒号?

How to escape colon with following space in a GItLab CI/CD YAML value?

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

  script:
    - echo "Backend image: $BACKEND_IMAGE"

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

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

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

jobs:deploy review:script config should be a string or a nested array of strings up to 10 levels deep

如果我完全删除冒号,它就可以正常工作。如何在 GitLab CI/CD?

中用冒号和 space 生成字符串值

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

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

如果不行,试试:

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

(用更有意义的变量名替换ECHO_STRING

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

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

经过几个选项后,我找到了下面这个简单的解决方案 像这样使用,

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