You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本的switch case语句能否组合两个判断条件?

Bash多变量case分支匹配实现方法

错误原因

Bash原生case语句仅支持对单个字符串做模式匹配,你代码中直接传入"$x" "$y"两个变量的写法不符合语法规范,所以会触发语法错误。
同时你需求中明确x、y的取值是0/1,但代码分支中匹配的是zero/one字符串,二者逻辑不统一,也会导致匹配失败。

正确实现方案

核心思路是把两个变量用无歧义的分隔符(比如冒号:、下划线_)拼接成单个字符串,再用case匹配拼接后的结果即可:

echo "enter x"
read x

echo "enter y"
read y

# 拼接两个变量为单个字符串
case "${x}:${y}" in
    "0:0") echo "condition 1: x=0、y=0"
    ;;
    "0:1") echo "condition 2: x=0、y=1"
    ;;
    "1:0") echo "condition 3: x=1、y=0"
    ;;
    "1:1") echo "condition 4: x=1、y=1"
    ;;
    # 可选:加默认分支处理非法输入
    *) echo "非法输入:x和y只能取值0或1"
    ;;
esac

如果你确实需要匹配zero/one的字符串值,只需把对应分支的匹配规则改成"zero:zero"、"zero:one"即可,逻辑完全一致。

内容的提问来源于stack exchange,提问作者user3559780

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:09:02