Shell 编程之条件语句

目录

一.条件测试

1.条件测试操作

  1.1 test 命令

  1.2文件测试

  1.3常用的测试操作符

2.整数值比较

  2.1 常用的测试操作符

3.字符串比较

  3.1 常用的测试操作符

4.逻辑测试

  4.1 常用的测试操作符

二. if 语句

1. 单分支结构

2. 双分支结构

3. 多分枝结构

4. 嵌套语句

三. case 语句

1. case 语句说明


一.条件测试

1.条件测试操作

  1.1 test 命令

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

格式1:test 条件表达式

格式2:【条件表达式】

  1.2文件测试

文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等

格式:【操作符 文件或目录】

  1.3常用的测试操作符

选项说明
-d测试是否为自录(Directory)
-e测试目录或文件是否存在(Exist)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(write)
-x测试是否设置有可执行(Excute)权限
-b测试是否为设备文件
-c测试是否为字符设备文件
-s测试存在且文件大小为空
-L测试是否为链接文件

示例1:

 示例2:1 &&前条件成立则&&后面的 ”yes“不显示       

              2 &&前条件不成立则显示&&后面的 ”yes“

2.整数值比较

格式:【整数1 操作符 整数2】

  2.1 常用的测试操作符

选项说明
-eq等于(Equal)
-ne不等于(Not Equal)
-gt大于(Greater Than)
-It小于(Lesser Than)
-le小于或等于(Lesser or Equal)
-ge大于或等于(Greater or Equal)

示例1:

 示例2:查看系统内存是否大于100M,如果大于则显示提示

3.字符串比较

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

             【 字符串1 != 字符串2 】

格式2:【 -z 字符串 】

  3.1 常用的测试操作符

选项说明
=字符串内容相同
!=字符串内容不同,!号表示相反的意思
-z

字符串内容为空

示例1:

 示例2:

4.逻辑测试

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

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

  4.1 常用的测试操作符

选项说明
-a或&&逻辑与,“而且”的意思
-o或||

逻辑或,“或者”的意思

逻辑否

示例1:

 示例2:

二. if 语句

1. 单分支结构

结构图:

单分支只做一次判断,判断成立则输出"OK",不成立则不输出

示例1:数字大小对比,成立则输出“OK”不成立则不输出

chmod +x 文件名 加权限否则无法运行

 示例2:判断文件是否存在,如果不存在则创建该文件

2. 双分支结构

结构图:

示例1:判断指定的IP地址是否开启进行 ping 通,能ping通则给出“UP” 若不能ping通则给出“down”

            /dev/null 是黑洞,用来存放垃圾文件

           -c 是ping的次数,-i 是ping的间隔时间

 示例2:创建用户并设置密码

3. 多分枝结构

结构图:

示例1:判断/home的文件类别,并以多种文件类别进行判断

 示例2:

4. 嵌套语句

判断httpd服务有没有启动

if 判断是否启动

如果启动------输出已启动

如果没启动----判断是否安装---如果安装---启动

示例1 检测是否有httpd服务,没有的话下载并启动

三. case 语句

1. case 语句说明

case语句可以使脚本程序的结构更加清晰、层次分明,常用于服务的启动、重启、停止的脚本,有的服务不提供这种控制脚本,需要用case语句编写case语句

主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况与多分支的if语句非常相似,只不过if语句需要判断多个不同的条件,而case语句只是判断一个变量的不同取值

 结构图:

示例1  判断输入的字符类型

 

 示例2  利用位置变量信息以脚本的形式开始httpd的服务

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值