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

如何在Bash脚本中使用三元运算符?解决‘==: command not found’报错

Bash脚本条件赋值报错问题解决

你遇到的错误有两个核心原因:

  • Bash不支持类C语言的条件 ? 结果1 : 结果2三元运算符语法
  • 变量赋值时等号前后不能有空格,你写的oname = ...会让Bash把oname识别为命令,=作为参数,进而找不到==这个命令

正确写法1:用条件判断组合实现类似三元逻辑

# 赋值时等号前后无空格,用&& ||分支控制输出
oname=$([[ "$OPTION" == "1" ]] && echo "OPTION ONE" || echo "OPTION TWO")
echo "Your selection was: ${oname}"

如果OPTION是数值类型,也可以用数值比较符-eq:

oname=$([[ "$OPTION" -eq 1 ]] && echo "OPTION ONE" || echo "OPTION TWO")

正确写法2:用case语句(更适合多分支扩展)

如果后续可能增加更多选项,case语句的可读性和扩展性更好:

case "$OPTION" in
    1) oname="OPTION ONE" ;;
    2) oname="OPTION TWO" ;;
    *) oname="UNKNOWN OPTION" ;; # 可选,处理非1/2的输入
esac
echo "Your selection was: ${oname}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:35:29