GitLab CI如何判断字符串为指定三个值之一及OR语法问题排查
问题根因
- bash 中
[[属于复合判断命令,必须和]]配对使用,不能和单独的[混用。你原代码中OR运算符两侧的判断语法完全错误,把[[ ... ]]拆成了[[ ... ] || [的错误格式,导致整个条件判断直接解析失败,默认返回false进入else分支。 - 括号和判断内容之间必须保留空格:你原代码里
"$BUMP_TYPE" = "no-release-just-build"]末尾的引号和]之间没有空格,属于语法错误,也会导致条件解析失败。 - 你问题中提到的
"$VERSION" = "no-release-just-build"判断不生效,是因为你定义的变量名为BUMP_TYPE,不存在VERSION变量,该变量取值为空自然无法匹配目标字符串。
修正后的配置
variables: BUMP_TYPE: 'no-release-just-build' ... before_script: - > if [[ "$BUMP_TYPE" = "no-release-just-build" || "$BUMP_TYPE" = "patch" ]]; then echo "valid $BUMP_TYPE" else echo "invalid $BUMP_TYPE" exit 1 # 校验不通过直接终止任务,可根据需求选择是否添加 fi
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

