欢迎光临
我们一直在努力

shell 条件判断

在开始之前,先了解一下逻辑判断符号:

&& 与、|| 或、

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
> fi
ok

################################## 

实战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 status
ip=192.168.1.1
ping -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/bash
read -p “请输入这位同学的成绩: ” a
if [ $a -lt 10 ];then
        echo “恭喜这位同学进入决赛!”
        read -p “请输入这位同学性别: ” b
        if [ $b = “男” ];then
                echo “恭喜这位同学进入男子决赛组!”
        else
                echo “恭喜这位同学进入女子决赛组!”
        fi
fi

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。