在 Linux 系统中,Shell 脚本是自动化任务的重要工具。而条件判断(Conditional Statements)则是让脚本具备“智能决策”能力的关键。无论你是刚接触 Linux 的小白,还是想巩固 Shell 编程基础的用户,本文都将带你一步步理解并掌握 Linux Shell 条件判断 的核心用法。
什么是 Shell 条件判断?
简单来说,条件判断就是让脚本根据某个条件的真假来决定执行哪一段代码。比如:“如果文件存在,就删除它;否则,提示用户文件不存在。” 这种逻辑在日常运维和开发中非常常见。
基本语法:if 语句
Shell 中最常用的条件结构是 if 语句,其基本格式如下:
if [ 条件 ]then # 条件为真时执行的命令fi
也可以写成一行形式(适合简单判断):
if [ 条件 ]; then 命令; fi
常用条件测试类型
Shell 支持多种条件测试,主要分为三类:
- 文件测试:检查文件是否存在、是否可读等
- 字符串测试:比较字符串是否相等、是否为空等
- 数值测试:比较两个数字的大小
1. 文件测试示例
if [ -f /etc/passwd ]; then echo "文件存在且是普通文件"fi
常用文件测试操作符:
-f file:文件存在且为普通文件-d dir:目录存在-r file:文件可读-w file:文件可写-x file:文件可执行
2. 字符串测试示例
name="Linux"if [ "$name" = "Linux" ]; then echo "欢迎使用 Linux!"fi
注意:字符串比较要用双引号包裹变量,防止空值导致语法错误。
3. 数值测试示例
age=25if [ $age -gt 18 ]; then echo "你已成年"fi
常用数值比较操作符:
-eq:等于-ne:不等于-gt:大于-lt:小于-ge:大于等于-le:小于等于
完整 if-elif-else 结构
当需要处理多个条件时,可以使用 elif 和 else:
score=85if [ $score -ge 90 ]; then echo "优秀"elif [ $score -ge 70 ]; then echo "良好"else echo "需努力"fi
实战小例子:备份脚本
下面是一个简单的备份脚本,展示了如何结合文件测试与条件判断:
#!/bin/bashBACKUP_DIR="/backup"SOURCE_FILE="/home/user/data.txt"if [ ! -d "$BACKUP_DIR" ]; then mkdir -p "$BACKUP_DIR" echo "创建备份目录:$BACKUP_DIR"fiif [ -f "$SOURCE_FILE" ]; then cp "$SOURCE_FILE" "$BACKUP_DIR/" echo "备份成功!"else echo "源文件不存在,无法备份。"fi
小贴士
- 方括号
[ ]是test命令的简写形式,前后必须有空格! - 现代 Shell(如 bash)也支持
[[ ]],功能更强大且更安全。 - 善用
echo $?查看上一条命令的退出状态(0 表示成功,非 0 表示失败)。
总结
通过本文,你已经掌握了 Linux Shell 条件判断 的基本用法,包括 Shell 脚本 if 语句、bash 条件测试 的各种类型,以及如何编写实用的条件逻辑。这些知识是 Shell 编程入门 的基石,建议多动手练习,逐步提升自动化脚本编写能力。
现在,打开你的终端,新建一个 .sh 文件,试着写一个属于你自己的条件判断脚本吧!
文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。
