Shell编程之条件语句

目录

一:条件测试

1.1文件测试

​​1.2整数值比较

1.3字符串比较

1.4逻辑测试

​​二:if语句的结构

2.1单分支结构

2.2双分支结构

2.3多分支结构

2.4嵌套语句

三:case语句结构

​四:总结

引言:本篇内容讲述了Shell编程条件语句的部分知识点,通过一些基础的案例向大家介绍if语句中的条件测试:文件测试、整数值比较、字符串比较、逻辑测试;以及if语句的几种类型。

一:条件测试

1.1文件测试

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

格式1:test 条件表达式

格式2:[ 条件表达式 ]

常用的测试操作符

-d:测试是否为目录

-e:测试目录或文件是否存在

-f:测试是否为文件

-r:测试当前用户是否有权限读取

-w:测试当前用户是否有权限写入

-x:测试是否设置有可执行权限

-b:测试是否为设备文件

-c:测试是否为字符设备文件

-s:测试存在且文件大小为空

-L:测试是否为链接文件

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

1.2整数值比较

格式:[ 整数1 操作符 整数2 ] 

常用的测试操作符

-eq:等于(equal)

-ne:不等于(not equal)

-gt:大于(greater than)

-lt:小于(lesser than)

-le:小于或等于(lesser or equal)

-ge:大于或等于(greater or equal)

在Shell脚本中,俩个==号为=号

1.3字符串比较

格式1:[ 字符串1 = 字符串2 ]  ; [ 字符串1 != 字符串2 ]

格式2:[ -z 字符串 ]

常用的测试操作符

=:字符串内容相同

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

-z:字符串内容为空

1.4逻辑测试

格式1:[ 表达式1 ]  操作符 [ 表达式2 ]

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

常用的测试操作符

-a 或&&:逻辑与,“而且”的意思

-o或||:逻辑或,“或者”的意思

!:逻辑否

二:if语句的结构

2.1单分支结构

if 条件测试操作                     
   then 命令序列
fi

案例:

案例:

案例:

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

2.2双分支结构

if 条件测试操作
   then 命令序列1
   else 命令序列2
fi

案例:测试机器是否存活

案例:创建用户

 

案例:当前用户是否为root

案例:查看Apache服务是否启动

2.3多分支结构

if 条件测试操作1
   then 命令序列1
elif 条件测试操作2
   then命令序列2
else
   命令序列3
fi 

案例:判断文件的类别

案例:

 

2.4嵌套语句

例:判断httpd服务有没有启动

嵌套的过程:

判断是否启动
如果启动-----输出已启动
如果没启动-----判断是否安装---如果安装---启动
                             如果没安装---安装---如果安装成功---启动
                                                如果安装不成功---报错

 

三:case语句结构

case 变量值 in
模式1)
  命令序列1
;;
模式2)
  命令序列2
;;

......
*)
  默认命令序列
esac

case行尾必须为单词“in”,每一模式必须以右括号“)”结束。

双分号“;;”表示命令序列的结束

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

最后的“*)”表示默认模式,其中的*相当于通配符 

案例:

案例:apache启动服务脚本

四:总结

在生产环境中我们编写Shell脚本需要学会条件测试的语法:文件测试、整数值比较、字符串比较、逻辑测试;以及if语句的语法的几种类型 :单分支、双分支、多分支、嵌套以及case多分支语法的使用方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值