DAY33 shell的条件语句

133 阅读2分钟

条件语句是用来判断给定的条件是否满足(表达式值是否为0),并根据判断的结果(真或假)决定执行的语句,选择结构就是用条件语句来实现的。
条件语句可以给定一个判断条件,并在程序执行过程中判断该条件是否成立,根据判断结果执行不同的操作,从而改变代码的执行顺序,实现更多的功能。

test条件测试

格式两种:

test  操作符  条件表达式

[ 操作符  表达式 ]  ##括号中一定要有空格

常用的操作符

-d测试文件是否为目录文件(Directory)

-f测试文件是否为普通文件(File)

-e测试目录或文件是否存在(Exist)。建议使用-e,-a可能不准确。

-a测试目录或文件是否存在(Exist)

-r测试当前用户是否有权限读取(Read)

-w测试当前用户是否有权限写入(Write)

-x测试当前用户是否有权限执行(eXcute)

-L测试是否为符号链接(软链接文件)

image.png

image.png

整数值测试

格式两种:

 [  整数变量1  操作符 整数变量 ] ##注意空格


 test  整数变量1  操作符 整数变量2
 
 

操作符:

操作符含义
-eq等于(Equal)
-ne不等于(Not Equal)
-gt大于(Greater Than)
-lt小于(Lesser Than)
-le小于或等于(Lesser or Equal)
-ge大于或等于(Greater or Equal)

image.png

字符串测试

  • =:字符串内容相同
  • !=:字符串内容不同,! 号表示相反的意思
  • -z:字符串内容为空
  • -n:字符是否存在

image.png

逻辑测试

格式两种:

  [ 表达式1 ]  运算符  [ 表达式2 ] ##注意不要忘记空格
  
  [ 表达式1 运算符 表达式2 ]

逻辑运算符:

  • -a或&& :逻辑与,“而且”的意思,全真才为真。
  • -o或|| :逻辑或,“或者”的意思,一真即为真。
  • ! :逻辑否。

image.png

三元运算符

格式

[ 表达式 ] && a || b ## 当表达式真时 ,取a ,为假,取b

小案例 查看指定主机是否在线

image.png

image.png

if语句

if单分支

格式:

if  判断条件

then  条件成立的分支代码

fi

image.png

小案例,硬盘空间是否大于10%,如果超过则报警

image.png

image.png

image.png

if双分支结构

格式 :

  if 判断条件
  then   
  条件成立的分支代码
  else
  条件不成立的分支代码
  fi
 

image.png

小案例 :检查80端口是否在监听

image.png

image.png

if多分支结构

格式:

image.png

image.png

小案例:根据输入时间不同来显示出不同提示语:

image.png

image.png

case语句

格式:

 case 变量引用 in
 模式1)
      命令分支1
      ;;
 模式2)
      命令分支2
      ;;
  。。。
  *)
     默认命令分支
  esac   
  

小案例:查询成绩系统

image.png

image.png