if 条件测试语句可以让脚本根据实际情况自动执行相应的命令。从技术角度来讲,if 语 句分为单分支结构、双分支结构、多分支结构;
1.单分支
if 条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的 命令,相当于口语的“如果……那么……”。
使用双分支的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关键词组成,它进行多次条件匹配判 断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如 果……那么……如果……那么……”。
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 ~]#