shell编程之条件语句

目录

一、条件测试

1.1 test命令

1.2 文件测试

1.3 整数值比较

1.3-1 常用的测试操作符

1.4 字符串比较

1.4-1 常用的测试操作符

1.5 逻辑测试

1.5-1 常用的测试操作符

2、if语句的结构

2.1 单分支结构

2.2 双分支结构

2.3 多分支结构

2.4 嵌套if语句

2.5 case语句结构

2.5-1 case多分支结构

 2.5-2 case多分支语句

本章总结


一、条件测试

1.1 test命令

测试表达式是否成立,若成立返回0,否则返回其他数值

格式1:test 条件表达式

格式2:[ 条件表达式 ]               

1.2 文件测试

[ 操作符 文件或目录 ]

1.2-1 常用的测试操作符

  • -d:测试是否为目录(Directory)
  • -e:测试目录或文件是否存在(Exist)
  • -f:测试是否为文件(File)
  • -r:测试当前用户是否有读写权限(Read)
  • -w:测试当前用户是否有权限写入(Write)
  • -x:测试当前用户是否有权限执行(eXcute)
  • -b:测试是否为设备文件
  • -c:测试是否为字符设备文件
  • -s:测试存在且文件大小为空
  • -L:测试是否为链接文件

例:

(执行测试完之后,通过预定义变量$?可以获得测试命令的返回状态值,从而判断该条件是否成立)

1.3 整数值比较

[ 整数1 操作符 整数2 ]

1.3-1 常用的测试操作符

  • -eq:等于(Equal)
  • -ne:不等于(Not Equal)
  • -gt:大于(Greater Than)
  • -lt:小于(Lesser Than)
  • -le:小于或等于(Lesser or Equal)
  • -ge:大于或等于(Greater or Equal)

例:

下面echo $?回报为0是条件不满足,此时是小于1000M

1.4 字符串比较

格式1:【字符串1 = 字符串2】/【字符串1 != 字符串2】

格式2:【-z 字符串】

1.4-1 常用的测试操作符

=:字符串内容相同

!=:字符串内容不同,!号表示取反的意思

-z:字符串内容为空

例:

 

1.5 逻辑测试

格式1:【表达式1】操作符【表达式2】

格式2:命令1 操作符 命令2

1.5-1 常用的测试操作符

  • -a或&&:逻辑与,“而且”的意思
  • -o或||:逻辑或,“或者”的意思
  • !:逻辑否

例:

 

2、if语句的结构

2.1 单分支结构

 

 

例: 

 

例2:

 此时我们再运行一下脚本

若果我们想更友好的显示结果信息,我们可以在脚本中重定向输出,把不想显示的输出到/dev/null中

例3:

 

 

 

注:

单个括号([]):必须要有空格,两个字符或数字之间的比较左右必须有空格 

判断条件:test一种形式,[] 中间只能使用 = 和 != 比较字符串,如果使用<、>需要进行转义\.

中间如果比较数字要用 -lt 等符号,不能使用\<比较数字,它会当成字符串处理

两个括号([[]]):用于处理逻辑命令,也可以处理字符串是否相等,并且使用<、>不用转义符

2.2 双分支结构

 

 

 

我们关闭网址的主机

例2:

 

 例3:检测网站服务是否存在

 

2.3 多分支结构

 

 

 

例2:

 

2.4 嵌套if语句

 

 

我们移除httpd服务再启动脚本

2.5 case语句结构

2.5-1 case多分支结构

 

 2.5-2 case多分支语句

 

编写apache启动服务脚本

 

本章总结

 1、条件测试的语法:

文本测试、整数值比较、字符串比较、逻辑测试

2、if条件语句的语法

单分支、双分支、多分支、

3、case多分支语句的语法


版权声明:本文为SmileLife_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。