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
。所以是的,触发 *)
案例是正确的。
我正在 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
。所以是的,触发 *)
案例是正确的。