云计算运维之Shell条件语句(if 语句+case语句及实例详解)

本文介绍了在云计算运维中,如何使用Shell的if和case语句进行条件测试和流程控制,以减少程序错误。详细讲解了test命令、文件测试、整数值比较、字符串比较和逻辑测试等内容,以及if语句的不同结构和case语句的用法。
摘要由CSDN通过智能技术生成

通常在云计算运维中,通常会用到shell和python,今天介绍shell当中的if和case语句,来完成测试判断,以减少程序的运行错误。

概述

  在shell脚本中的各种条件结构和流程控制都要进行各种的测试,然后根据测试的结果执行不同的操作,有时也会和if语句结合,来完成测试判断,以减少程序的运行错误。
  也就是说,当我们在写一个脚本,里面没有任何的判断,就写了一些很普通的命令,那么在我们运行脚本的时候,当遇到了错误,也会一直的执行下去,这样就导致了我们脚本执行的结果是错误的。 这时候我们就会用到我们的条件测试比较。
那么在执行条件测试中通常会返回 “真”或者“假”就像我们执行一条成功的命令,那么执行完这条命令 我们echo$? 如果它返回的是0 那么就是真的返回的状态是非0那么就是假的 也就是错的。

一:条件测试

1.1:test命令

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

格式1:test  条件表达式
格式2:【 条件表达式 】             #注意两端要有空格:
#文件测试

1.2:文件测试 文件类型跟权限测试

[操作符 文件或目录]    
&?  返回0表示条件成立,返回非零值表示条件不成立
&&  逻辑与,"而且"的意思
||  逻辑或,"或者"的意思
常见的测试操作符 解释
-d 测试是否为目录(directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试当前用户是否有权限执行(eXcute)
[root@localhost ~]# touch a.txt
[root@localhost ~]# test -f a.txt
[root@localhost ~]# echo $?
0
[root@localhost ~]# test -d a.txt 
[root@localhost ~]# echo $?
1
[root@server1 test]# mkdir tom
[root@server1 test]# ls
tom
[root@server1 test]# [ -x /test/tom ]
[root@server1 test]# echo $?
0
[root@server1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 107 19:31 tom

echo $? 查询上个步骤是否成立,成立则为0,不成立则为非0
&& 是而且的含义 表示如果两边的条件都成立,才会正确执行;echo "yes"很明显是正确的
[root@server1 test]# [ -e /dev/cdrom ]&& echo "yes"
yes
[root@server1 test]# test -e /dev/cdrom && echo  "yes"
yes

1.3:整数值比较

  • 整数值比较
命令基本格式
[ 整数1 操作符 整数2 ]	
  • 常用的测试操作符
操作符 解释
-eq 等于(Equal)
-ne 不等于(Not Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)
[root@server1 test]# [ -e /dev/cdrom ]&& echo "yes"
yes
[root@server1 test]# test -e /dev/cdrom && echo  "yes"
yes
[root@server1 test]# [ 33 -eq 33 ] && echo "yes"
yes
[root@server1 test]# [ 33 = 33 ] && echo "yes"
yes
[root@server1 test]# [ 33 == 33 ] && echo "yes"
yes
#数值比较用-eq
[root@server1 test]# [ "tom" == "tom" ] && echo 
  • 13
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值