我在 GitLab CI/CD 中有以下行:
script:
- echo "Backend image: $BACKEND_IMAGE"
但是 YAML 解释器将其视为对象。然后我用谷歌搜索了这个问题并尝试了这个:
script:
- echo "Backend image:: $BACKEND_IMAGE"
但它仍然不起作用,GitLab 作业失败,并显示以下内容:
工作:部署审查:脚本配置应该是一个字符串或最多 10 层深度的嵌套字符串数组
如果我完全删除冒号,它就可以正常工作。如何在 GitLab CI/CD 中创建带有冒号和后面空格的字符串值?
如果用单引号将字符串括起来,它应该可以工作:
script:
- 'echo "Backend image: $BACKEND_IMAGE"'
在经历了几个选项之后,我发现了下面这个简单的解决方案 像这样使用,
Image="Backend image:"
export RESULT="$(echo "$Image" $BACKEND_IMAGE)"
echo "Result is " $RESULT
我将冒号拉出到变量中。
simple_echo_stage:
stage: echo
before_script:
- COLON=":"
script:
- echo "This is a message${COLON} The colon was defined in before_script."
也许您可以尝试先将字符串放入变量中,然后回显该变量:
- ECHO_STRING=$(echo "Backend image:: $BACKEND_IMAGE")
- echo $ECHO_STRING
如果没有,请尝试:
- ECHO_STRING=$(echo "Backend image:\ $BACKEND_IMAGE" | tr -d '\')
- echo $ECHO_STRING>>
(将
ECHO_STRING
替换为更有意义的变量名称)