如何在gitlab.yml的bash命令中使用#(井号)字符
在GitLab Bash命令中正确使用#字符的解决方法
你遇到的问题是bash默认会把#识别为注释起始,下面给你两个靠谱的解决办法:
用单引号包裹含#的内容:bash会把单引号内的所有内容当作纯字符串,完全不会解析注释。比如:
echo '我需要输出#这个字符' git commit -m '修复#123号bug'用双引号包裹含#的内容:双引号内除了$、`、\这几个字符会被解析外,#不会被当成注释,适合需要保留变量解析的场景:
echo "当前分支是$CI_COMMIT_BRANCH,关联#$ISSUE_ID"
之前的方法为啥没用?
- 双井号##不行:bash只要看到第一个#就会触发注释,后面的内容全被忽略,所以##本质还是注释开头。
- 反斜杠#不行:在无引号的场景下,bash会把#当成转义后的字符保留下来,而不是只保留#,所以才会出现#一起生效的情况。
如果是在GitLab CI的.gitlab-ci.yml脚本里,直接按上面的写法放到script字段里就行,比如:
deploy: script: - curl "https://api.example.com/endpoint#version=v2" - echo '发布日志:修复#456兼容性问题'
内容的提问来源于stack exchange,提问作者Clarence the Bard
相关产品推荐
相关产品推荐

