Bash 脚本中的if...then...fi
在 Bash 脚本中,if...then...fi
是最基础也是最常用的条件语句结构,类似于其他语言中的 if...else
结构。
🧱 基本语法格式
if 条件
then
命令1
命令2
fi
✅ 示例:
if [ -f /etc/passwd ]
then
echo "文件存在"
fi
这个例子判断 /etc/passwd 是否存在并且是个普通文件。
✨ 加上 else 的格式:
if 条件
then
命令1
else
命令2
fi
示例:
if [ "$USER" = "root" ]
then
echo "你是超级用户"
else
echo "你不是 root 用户"
fi
🌈 多条件:if...elif...else...fi
if 条件1
then
命令1
elif 条件2
then
命令2
else
命令3
fi
示例:
if [ "$1" = "start" ]
then
echo "开始服务"
elif [ "$1" = "stop" ]
then
echo "停止服务"
else
echo "未知命令"
fi
🧠 条件表达式说明(最常用):
表达式 | 含义 |
---|---|
[ -f FILE ] | 文件存在且是普通文件 |
[ -d DIR ] | 目录存在 |
[ -z STRING ] | 字符串长度为 0 |
[ STRING1 = STRING2 ] | 两个字符串相等 |
[ NUM1 -eq NUM2 ] | 两个整数相等 |
[ NUM1 -lt NUM2 ] | NUM1 小于 NUM2 |
[ 条件 ] && [ 条件 ] | 多个条件 "并且" |
❗注意事项:
- 方括号两边一定要留空格,如
[ "$USER" = "root" ]
(否则报错) fi
是if
的结束标志(fi
是if
反过来)
🔧 小脚本示例:
#!/bin/bash
read -p "请输入一个数字: " num
if [ "$num" -gt 100 ]; then
echo "大于 100"
elif [ "$num" -eq 100 ]; then
echo "等于 100"
else
echo "小于 100"
fi