Bash 脚本案例不正确评估条件

Bash script case does not evaluate conditions right

我正在 Jenkins 作业中执行此 shell 脚本。 这里的想法是 运行 仅当此脚本中的条件评估为真时才执行作业的下一步。 如果内部版本号中有单词 SNAPSHOT,它应该评估为 true 并执行下一步。

#!/bin/sh
snapshot_present=true
v="${BUILD_NUMBER}"
case $v in
    *SNAPSHOT*)
        echo "snapshot ${v} being pushed to prod";;
    *)
        echo "no match found in ${v}"
esac
exit

不过,当我运行这份工作。我得到的输出是:

no match found in 77

77 是这里的内部版本号。 而作业不管继续执行下一步。

我的病情评估正确吗?如果是这样,那为什么我得到其他输出?而它应该产生

snapshot ${v} being pushed to prod

如有任何帮助,我们将不胜感激。 谢谢你。

no match found in 77

如打印输出所示,$v 设置为 77 并且不包含单词 SNAPSHOT。所以是的,触发 *) 案例是正确的。