你的 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" 时将被执行。