你的 Bash shell case
语句的用法是正确的。你正在检查变量 $local_arch
是否等于 "arm"
。如果是,那么你进一步检查 $tag
是否包含 "windows"
。如果包含,你将输出一条消息并跳过当前循环。
这是一个高效的方式来根据不同的变量值执行不同的操作。然而,你需要确保 case
语句在一个循环中,否则 continue
语句将没有效果,因为 continue
是用来跳过当前循环的剩余部分,并开始下一次循环。
如果你只有一个 case
,你可能需要添加更多的条件,例如:
case $local_arch in
"arm" )
if [ $(echo $tag | grep windows | wc -l) -eq 1 ]; then
echo "我是arm,但是这个镜像的tag是windows,跳过"
continue
fi
;;
"x86" )
# 处理 x86 的情况
;;
* )
# 默认情况
;;
esac
在这个示例中,;;
表示每个 case
的结束。*
是一个默认情况,当 $local_arch
不是 "arm"
或 "x86"
时将被执行。