掌握Shell脚本的逻辑判断(Linux Shell条件判断从零开始)

V5主机测评

在 Linux 系统中,Shell 脚本是自动化任务的重要工具。而要让脚本具备“智能”行为,就需要用到条件判断。本文将带你从零开始学习 Linux Shell 中的条件资源(即条件判断语句),即使你是完全的小白,也能轻松上手!

掌握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 编程的道路上越走越远!

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。