您的位置: 首页 > 文章 > shell 条件判断 shell 条件判断 分类: 文章 • 2022-05-01 22:11:06 在开始之前,先了解一下逻辑判断符号: && 与、|| 或、! 非 A && B 必须A,B同时成立,才能通过判断 ---> 判断流程:先执行A判断其是否成立,若成立,则继续执行B,判断其是否成立 ---> 若不成立,则直接结束,不再执行B A || B A、B有一个成立,即可通过判断 !A 若A不成立,则通过判断 数和符号,如下: 比较数值: 等于 ---> –eq 不等于 ---> –ne 小于 ---> –lt 大于 ---> –gt 小于等于 ---> –le 大于等于 ---> –ge 一些英文单词:帮助记忆 equal等于、not equal不等于、less than小于、great than大于 less equal 小于等于 great equal大于等于 比较字符串: = 等于、== 等于,同=、!= 不等于、> 大于、<小于、-z字符串为空、-n字符串非空null if流程控制语句 if语句有三种使用方式: 格式如下: 单分支: if 条件判断语句 then 执行语句 fi 双分支: if 条件判断语句 then 执行语句 else 执行语句 fi 多分支: if 条件判断语句 then 执行语句 else 执行语句 fi ################################## 实战1:if单分支--->应用 源码如下: [root@linux4 ~]# if [ -d /root ];then //判断root目录是否存在> echo "ok" //如果存在输入OK> fiok ################################## 实战2:if双分支应用--->pinghost.sh ping -c 3 -i 0.2 -w 3 192.168.1.1 -c 发送数据包个数 -i 数据包每次发送间隔时间,默认单位:秒(s) -w 等待时间,超过返回失败 源码如下: #!/bin/bash # ping a given host and print the host statusip=192.168.1.1ping -c 3 -i 0.2 -w 3 $ip >>/dev/null #-c count -i? -w wait?if [ $? -eq 0 ];then? echo "the host $ip is up."?else echo "the host $ip is down."?fi ################################## 实战3:if多分支应用--->判断数值区间 num.sh 源码如下: #!/bin/bash read -p "请输入一个成绩: " num if [ $num -gt 85 -a $num -lt 100 ];then echo '优秀!'elif [ $num -gt 70 ];then echo '良好!'elif [ $num -gt 60 ];then echo '合格!'else echo '不合格!'fi ################################## 实战4:if嵌套使用 源码如下: #!/bin/bashread -p "请输入这位同学的成绩: " aif [ $a -lt 10 ];then echo "恭喜这位同学进入决赛!" read -p "请输入这位同学性别: " b if [ $b = "男" ];then echo "恭喜这位同学进入男子决赛组!" else echo "恭喜这位同学进入女子决赛组!" fifi