在 Linux 系统中,Shell 脚本是自动化任务的利器。而要让脚本“聪明”起来,能够根据不同情况做出不同反应,就必须学会使用条件判断。本文将手把手教你如何在 Shell 脚本中使用条件语句,即使是完全没接触过编程的小白也能轻松上手!
简单来说,条件判断就是让脚本能“思考”。比如:如果文件存在,就执行 A;否则,执行 B。这种逻辑控制在 Shell 中主要通过 if 语句实现。
Shell 中最常用的条件判断结构如下:
if [ 条件 ]then # 条件为真时执行的命令elif [ 其他条件 ]then # 其他条件为真时执行的命令else # 所有条件都不满足时执行的命令fi
注意:[ ] 是测试命令,左右两边必须有空格!这是新手常犯的错误。
Shell 支持多种类型的条件判断,包括文件测试、字符串比较和数值比较。
-e file:文件存在-f file:是普通文件-d dir:是目录-r file:可读-w file:可写-x file:可执行示例:检查某个文件是否存在
#!/bin/bashif [ -e /home/user/myfile.txt ]then echo "文件存在!"else echo "文件不存在。"fi
str1 = str2:相等str1 != str2:不相等-z str:字符串为空-n str:字符串非空示例:判断用户输入是否为空
#!/bin/bashecho "请输入你的名字:"read nameif [ -z "$name" ]then echo "你没有输入名字!"else echo "你好,$name!"fi
num1 -eq num2:等于num1 -ne num2:不等于num1 -gt num2:大于num1 -lt num2:小于num1 -ge num2:大于等于num1 -le num2:小于等于示例:判断年龄是否成年
#!/bin/bashecho "请输入你的年龄:"read ageif [ $age -ge 18 ]then echo "你已成年。"else echo "你还未成年。"fi
结合我们学到的 Linux Shell条件判断 和 bash条件表达式,来写一个简单的备份脚本:
#!/bin/bashSOURCE="/home/user/documents"BACKUP="/backup/documents_$(date +%Y%m%d).tar.gz"# 检查源目录是否存在if [ ! -d "$SOURCE" ]then echo "错误:源目录 $SOURCE 不存在!" exit 1fi# 检查备份是否已存在if [ -e "$BACKUP" ]then echo "警告:今日备份已存在,跳过..."else tar -czf "$BACKUP" "$SOURCE" echo "备份成功:$BACKUP"fi
这个脚本展示了如何用 Shell脚本教程 中学到的知识解决实际问题。它先检查源目录是否存在,再判断今天是否已经备份过,避免重复操作。
[ 和 ] 周围加空格 → 会报错$name 应写作 "$name")→ 遇到空格会出错== 而不是 -eq → 结果可能不符合预期通过本教程,你已经掌握了 if语句使用 的核心技巧,并能编写具备基本逻辑判断能力的 Shell 脚本。条件判断是 Shell 编程的基石,熟练运用后,你可以自动化更多复杂任务,提升工作效率。
现在,打开你的终端,新建一个 .sh 文件,动手试试吧!实践是最好的老师。
本文由主机测评网于2025-11-26发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511719.html