当前位置: 首页> 财经> 访谈 > shell编程之条件语句

shell编程之条件语句

时间:2025/7/10 5:40:55来源:https://blog.csdn.net/yangye2424637628/article/details/140500586 浏览次数:0次

文章目录

  • 一、条件测试
  • 二、if语句的结构
    • 1、单分支结构
    • 2、双分支结构
    • 3、多分支结构
    • 4、if嵌套语句
  • 三、case语句的结构

一、条件测试

1、test命令
测试表达式是否成立,若不成立返回0,否则返回其他数值

2、文件测试

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

0为真,1为假
在这里插入图片描述

3、整数值比较

-eq:  等于       -ne:  不等于     -gt:   大于     -lt:   小于       -le:   小于等于   -ge:   大于等于 

在这里插入图片描述
4、字符串比较

常用操作符说明
=字符串内容相同
!=字符串内容不同,!号表示相反的意思
-z字符串内容为空
-n检查是否有字符串存在

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
5、逻辑测试

常用操作符说明
-a或&&逻辑与,而且的意思
-o或||逻辑或,或者的意思
逻辑否

在这里插入图片描述
在这里插入图片描述

二、if语句的结构

1、单分支结构

在这里插入图片描述

单个括号([ ]):必须要有空格 两个字符或数字之间的比较左右必须有空格
条件判断:
test一种形式,[ ]中间只能使用=和!=比较字符串,如果使用< 、>需要进行转义.
然后中间如果比较数字要用-lt 等符号,不能使用 < 比较数字,他会当成字符串处理
两个括号[[ ]] :可用于处理逻辑命令,也可以处理字符串是否相等,且使用< 、>不用转义符

2、双分支结构

在这里插入图片描述

3、多分支结构

在这里插入图片描述

4、if嵌套语句

#!/bin/bash
ps aux | grep httpd | grep -v grep > /dev/null  #查询httpd的进程是否允许,排除掉grep进程,不显示查询结果
if [ $? -ne 0 ];then                            #如果不为0说明程序执行成功if [[ $(rpm -q httpd 2>/dev/null) =~ "未安装" ]];then      # =~表示正则匹配是否包含未安装yum install -y httpdfisystemctl start httpdecho "httpd is running"
elseecho "httpd is running"
fi

在这里插入图片描述

三、case语句的结构

case 语句可以使脚本程序的结构更加清晰、层次分明,常用于服务的启动、重启、停止的脚本,有的服务不提供这种控制脚本,需要用case语句编写
case 语句主要适用于以下情况: 某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况与多分支的 if 语句非常相似,只不过 if 语句需要判断多个 不同的条件,而 case 语句只是判断一个变量的不同取值。

case语句注意事项
①case行首必须以单词“in”,每一模式必须以单个右括号")"结束

②双分号";;"表示命令序列的结束

③模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]",还可以用竖杠符号 “|”表示或,如“A|B”。

最后的*)表示默认模式,其中的*相当于通配符
在这里插入图片描述
在这里插入图片描述

关键字:shell编程之条件语句

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: