11. if 条件测试语句(2)

        if 条件测试语句可以让脚本根据实际情况自动执行相应的命令。从技术角度来讲,if 语 句分为单分支结构、双分支结构、多分支结构;

1.单分支

         if 条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的 命令,相当于口语的“如果……那么……”。

11. if 条件测试语句(2)_第1张图片

        使用双分支的if条件语句来验证某台主机是否在线,然后根据返回值的结果

        使用ping命令来测试与对方 主机的网络连通性,

        需要通过-c 参数来规定尝试的次数,

        并使用-i 参数定义每个数据 包的发送间隔,

        以及使用-W参数定义等待超时时间。

[root@localhost ~]# cat test.sh
#!/bin/bash
#测试主机是否在线
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
        echo "host $1 is 在线"
else
        echo "host $1 is不在线"
fi
[root@localhost ~]# bash test.sh 192.168.172.146
host 192.168.172.146 is 在线

2.多分支

        if 条件语句的多分支结构由if、then、else、elif、fi关键词组成,它进行多次条件匹配判 断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如 果……那么……如果……那么……”。

11. if 条件测试语句(2)_第2张图片

3.read 

        read 是用来读取用户输入信息的命令, 能够把接收到的用户输入信息赋值给后面的指定变量,-p参数用于向用户显示一些提示信息。 (类似于scanf函数)

        当用户输入的分数大于等于85分且小于等于100分时,才输 出优秀字样;若分数不满足该条件(即匹配不成功),则继续判断分数是否大于等于70 分且小于等于84 分,如果是,则输出通过 字样;若两次都落空(即两次的匹配操作都失败 了),则输出错误字样:

[root@localhost ~]# cat sorce.sh
#!/bin/bash
read -p " 输入你的成绩(0-100): " GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
        echo " 优秀 "
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
        echo " 及格通过 "
else
        echo " 输入错误 "
fi


[root@localhost ~]# bash sorce.sh
 输入你的成绩(0-100): 88
 优秀
[root@localhost ~]# bash sorce.sh
 输入你的成绩(0-100): 80
 及格通过
[root@localhost ~]# bash sorce.sh
 输入你的成绩(0-100): 30
 输入错误
[root@localhost ~]# bash sorce.sh
 输入你的成绩(0-100): 200
 输入错误
[root@localhost ~]#

你可能感兴趣的:(#,RHCE,redhat,Linux,RHCE)