如何在 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
我在 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