linux里shell脚本if怎么写
linux里shell脚本if怎么写详细介绍
在 Linux 的 Shell 脚本中,if 语句用于根据条件执行不同的操作。以下是其常见语法和使用示例:
基本语法
bash
条件条件
条件测试的常见类型
Shell 中通过 test 命令或方括号 [ ] 进行条件判断,空格非常重要(方括号内外必须有空格)。
1. 文件测试
判断文件是否存在、类型、权限等:
| 操作符 | 说明 |
|---|---|
| -e | 文件存在(存在即真) |
| -f | 文件存在且是普通文件 |
| -d | 文件存在且是目录 |
| -r | 文件存在且可读 |
| -w | 文件存在且可写 |
| -x | 文件存在且可执行 |
示例:判断文件是否存在并可读
bash
"
可读"
不可读或不存在"
2. 数值比较
对整数进行比较(注意:浮点数需用其他工具如 bc):
| 操作符 | 说明 |
|---|---|
| -eq | 等于(Equal) |
| -ne | 不等于(Not Equal) |
| -gt | 大于(Greater Than) |
| -lt | 小于(Less Than) |
| -ge | 大于等于(Greater Equal) |
| -le | 小于等于(Less Equal) |
示例:判断两个数值的大小
bash
" "
小于 "
" "
等于 "
大于 "
3. 字符串比较
判断字符串是否为空、相等或包含关系:
| 操作符 | 说明 |
|---|---|
| = | 等于(注意两边有空格) |
| != | 不等于 |
| -z | 字符串为空(Zero length) |
| -n | 字符串非空(Non-zero length) |
示例:判断用户输入是否为空或是否等于指定值
bash
input"
"
4. 逻辑运算
组合多个条件(需用 &&、|| 或 -a、-o,注意方括号中需用 -a、-o):
| 操作符 | 说明 | ||
|---|---|---|---|
&& 或 -a |
逻辑与(两个条件都成立) | ||
| ` | 或-o` |
逻辑或(至少一个成立) | |
! |
逻辑非(取反) |
示例:判断文件存在且可读,或目录存在
bash
" "
可读,且 是目录"
"
不存在"
注意事项
- 方括号与空格:
[后和]前必须有空格,例如[ condition ],否则会报错。 - 变量引用:变量建议用双引号包裹(如
"$var"),避免空变量导致语法错误。 - 复杂条件:若条件复杂,可使用
[[ ]](更灵活,支持正则匹配等)或test命令。 - 退出状态:条件判断的结果由命令的退出状态(
0表示真,非0表示假)决定。
通过以上用法,你可以在 Shell 脚本中灵活实现条件判断逻辑。