在 Linux 系统中,Shell 脚本是自动化任务的重要工具。而要让脚本具备“智能”行为,就需要用到条件判断。本文将带你从零开始学习 Linux Shell 中的条件资源(即条件判断语句),即使你是完全的小白,也能轻松上手!
什么是 Shell 条件判断?
Shell 条件判断允许脚本根据不同的情况执行不同的命令。比如:检查一个文件是否存在、比较两个数字大小、判断用户输入是否正确等。这正是实现“智能脚本”的关键。
基本语法:if 语句
最常用的条件判断结构是 if 语句。其基本格式如下:
if [ 条件 ]then # 条件为真时执行的命令fi 注意:[ 和 ] 前后都要有空格!这是很多初学者容易出错的地方。
常用条件测试类型
Shell 支持多种类型的条件测试,主要包括以下三类:
1. 文件测试
-f file:如果 file 是普通文件,则为真-d dir:如果 dir 是目录,则为真-e path:如果 path 存在(无论文件或目录),则为真
示例:检查 /etc/passwd 是否存在
if [ -f /etc/passwd ]then echo "密码文件存在!"else echo "密码文件不存在!"fi 2. 字符串比较
str1 = str2:字符串相等str1 != str2:字符串不相等-z str:字符串长度为 0(空)
示例:判断用户输入是否为空
read -p "请输入你的名字: " nameif [ -z "$name" ]then echo "你没有输入名字!"else echo "你好,$name!"fi 3. 数值比较
n1 -eq n2:等于(equal)n1 -ne n2:不等于(not equal)n1 -gt n2:大于(greater than)n1 -lt n2:小于(less than)
示例:比较两个数字
num=10if [ $num -gt 5 ]then echo "$num 大于 5"fi 多分支判断:if-elif-else
当需要处理多种情况时,可以使用 elif(else if 的缩写):
score=85if [ $score -ge 90 ]then echo "优秀"elif [ $score -ge 80 ]then echo "良好"elif [ $score -ge 60 ]then echo "及格"else echo "不及格"fi 逻辑运算符
你还可以组合多个条件:
&&或-a:逻辑与(AND)||或-o:逻辑或(OR)!:逻辑非(NOT)
示例:检查文件是否存在且可读
if [ -f myfile.txt ] && [ -r myfile.txt ]then echo "文件存在且可读"fi 小结
通过本文,你已经掌握了 Linux Shell条件判断 的基本用法,包括文件测试、字符串比较、数值判断以及多分支结构。这些是 Shell脚本教程 中的核心内容,也是迈向 Shell编程入门 的重要一步。
记住:多练习才能熟练!试着写一个脚本,让用户输入一个路径,然后判断它是文件、目录还是不存在。这将帮助你巩固所学的 Shell if语句 知识。
祝你在 Shell 编程的道路上越走越远!

