【发布时间】:2021-10-22 08:50:08
【问题描述】:
我们希望确保用户从有效选项列表中输入一个值。由于我们无法定义有效值的预设值,因此我们目前正在尝试使用 if 语句来实现。
但是,我们很难找出 OR 运算符的 if 语法。
我们目前拥有的:
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"
fi
但是这会输出:“invalid no-release-just-build” --> else case
为什么"$VERSION" = "no-release-just-build" 不正确?
【问题讨论】:
-
${VERSION} 的值是多少?
-
抱歉,我已经通过了旧版本的测试。$VERSION 应该是 $BUMP_TYPE
-
使用shellcheck.net。两个一般注意事项:首先,那些方括号不是括号;不要试图将它们用作括号。二、shell语法中的空格matter;如果您可以按照您尝试的方式使用方括号,那么您需要在它们和您尝试测试的字符串之间留有空格。