)
核心用||或连接两个条件。根据你用的判断方式有几种写法。一、[ ]中用||最常用⭐两个[ ]之间用||if [ 条件1 ] || [ 条件2 ]; then echo 任一满足就执行 fi例子if [ $a yes ] || [ $b ok ]; then echo 满足其一 fi # 数值比较 if [ $num -lt 10 ] || [ $num -gt 100 ]; then echo 小于10 或 大于100 fi二、[ ]中用-o老写法在一个[ ]内用-o表示 orif [ $a yes -o $b ok ]; then echo 满足其一 fi-o已不推荐POSIX 标记为过时、复杂条件易出错建议用||。三、[[ ]]中用||Bash 推荐⭐Bash 里用双中括号[[ ]]更安全、可在内部直接用||if [[ $a yes || $b ok ]]; then echo 满足其一 fi[[ ]]是 bash/zsh 扩展支持||、、模式匹配推荐用它。四、(( ))中做数值判断纯数值比较可用(( ))里面用||if (( num 10 || num 100 )); then echo 满足其一 fi五、字符串多值匹配顺带如果是变量等于多个值之一用[[ ]]或case更简洁# 方式1 if [[ $x a || $x b || $x c ]]; then ... # 方式2case多值时更清晰 case $x in a|b|c) echo 匹配 a/b/c;; esac常见易错点 ⚠️变量加双引号防止空值/空格报错if [ $a yes ] || [ $b ok ]; then # ✅[ ]内两侧要有空格[ $a yes ] # ✅ 中括号内侧有空格 [$ayes] # ❌ 报错||是连接两个[ ]不是放进一个里if [ $a 1 ] || [ $b 2 ]; then # ✅ if [ $a 1 || $b 2 ]; then # ❌ 单 [ ] 里不能用 ||单[ ]里要 or 得用-o||只能用在[ ]之间或[[ ]]内部完整示例#!/bin/bash read -p 输入内容: x if [[ $x start || $x run ]]; then echo 开始执行... else echo 未匹配 fi一句话总结最推荐if [[ 条件1 || 条件2 ]]; thenBash||写在双括号内通用/POSIXif [ 条件1 ] || [ 条件2 ]; then||连接两个单括号数值if (( a10 || b100 )); then记住单个[ ]里面用-o多个[ ]之间或[[ ]]里面用||。