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

最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏