Linux脚本if语句分支选择的核心是命令退出状态码:0为真(成功),非0为假(失败);支持单分支(if-then)、双分支(if-else)、多分支(if-elif-else)及嵌套与逻辑组合(&&、||、!)。

Linux 脚本用 if 语句做分支选择,核心是靠条件测试的返回值(0 表示真/成功,非 0 表示假/失败)来决定执行哪段代码。它不依赖“布尔值 true/false”,而是看命令是否执行成功。
单分支:只在条件成立时执行操作
适合“满足就做,不满足就跳过”的场景,比如检查文件是否存在再处理。
- 语法简洁:用
if [ 条件 ]; then ... fi或if [[ 条件 ]]; then ... fi - 注意空格:方括号
[和]前后必须有空格,否则报错 - 常见写法示例:
if [ -f "/tmp/data.log" ]; then<br> echo "日志文件存在,开始备份"</br> cp /tmp/data.log /backup/
fi
双分支:条件成立走 A,不成立走 B
最常用结构,对应“如果…否则…”逻辑,比如权限校验、服务状态判断。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 必须包含
else分支,和then、fi成对出现 - 典型例子:判断当前用户是不是 root
if [ $UID -eq 0 ]; then<br> echo "正在以管理员身份运行"</br>else<br> echo "请用 sudo 运行此脚本"
fi - 字符串比较也常用:
if [ "$USER" = "admin" ]; then ... else ... fi
多分支:多个条件依次判断
用 elif(else if 的缩写)串联多个条件,从上到下逐个检查,命中即停。
- 执行顺序严格:第一个为真的条件触发对应分支,后续不再检查
- 建议始终带
else作为兜底,避免遗漏情况 - 实用示例:根据磁盘使用率输出不同提示
usage=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')<br>if [ $usage -ge 90 ]; then<br> echo "警告:磁盘使用率过高!"<br>elif [ $usage -ge 75 ]; then<br> echo "注意:磁盘空间较紧张"<br>else<br> echo "磁盘空间正常"fi
嵌套与逻辑组合:让判断更灵活
单个 if 内可再写 if,也可用 &&、||、! 组合多个条件。
-
&&表示“且”:两个条件都成立才执行 then,如if [ -e "$file" ] && [ -r "$file" ] -
||表示“或”:任一条件成立就执行 then,常用于“存在就跳过,不存在就创建” -
!表示取反:比如if ! [ -d "/var/log/app" ]; then mkdir /var/log/app; fi - 嵌套要配对:每个
if都得有对应的fi,缩进有助于看清层级

















