GitLab CI/CD中${CI_COMMIT_REF_NAME////-}语法的含义是什么?
GitLab CI中${CI_COMMIT_REF_NAME////-}的语法含义
这是Bash参数扩展的全局替换语法,作用是把CI_COMMIT_REF_NAME变量里所有的斜杠/替换成连字符-,拆解来看:
${变量//旧字符/新字符}是Bash里的全局替换格式:第一个//表示对变量内容里的所有匹配项进行替换(如果只用单个/,只会替换第一个匹配项)- 这里要替换的旧字符是
/,而替换语法里的分隔符也是/,所以需要用额外的/来区分,就形成了////的结构:前两个//是全局替换标记,第三个/是要被替换的目标字符,第四个/是分隔符,最后跟着的-是替换后的字符
举个实际例子:如果当前分支名是feature/user-auth(包含斜杠),经过这个替换后,结果会变成feature-user-auth。
CI_COMMIT_REF_NAME是GitLab CI的内置变量,用来表示当前流水线对应的分支名或标签名,这个替换通常是为了生成符合某些系统要求的名称(比如部分系统不允许名称里包含斜杠)。
内容的提问来源于stack exchange,提问作者ontherocks
相关产品推荐
相关产品推荐

