课时7 使用if判断结构
一、程序流控制
执行过程的顺序化、自动化:智能化的选择及处理;让重复操作更聪明一些。
二、单分支/双分支的if应用
单分支if语句结构:
if 条件测试
then 命令序列
fi
示例1:检查备份目录/opt/mrepo,若不存在则创建
[
root@localhost ~]# cat chkdir.sh
#!/bin/bash
BACKUP_DIR="/opt/mrepo"
if [ ! -d $
BACKUP_DIR
]
then
mkdir -p
$
BACKUP_DIR
fi
双分支if语句结构:
if 条件测试
then 命令序列1
else 命令序列2
fi
示例2:判断目标主机是否存活,显示检测结果
[
root@localhost ~]# cat chkhost.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is up."
else
echo "Host $1 is down."
fi
[
root@localhost ~]# ./chkhost.sh 192.168.4.11
Host 192.168.4.11 is up.
[
root@localhost ~]# ./chkhost.sh 192.168.4.13
Host 192.168.4.13 is down.
三、多重分支的if应用
多分支if语句结构:
if 条件测试1
then 命令序列1
elif 条件测试2
then 命令序列2
......
else
命令序列n
fi
示例3:判断机试分数,区分优秀/合格/不合格
[
root@localhost ~]# cat gradediv.sh
#!/bin/bash
read -p "请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] &&
[ $
GRADE
-le 100
] ; then
echo "$GRADE 分!优秀"
elif
[ $
GRADE
-ge 70
] &&
[ $
GRADE
-le 84
] ; then
echo "
$
GRADE 分,合格
"
else
echo
"
$
GRADE 分,不合格
"
fi
[
root@localhost ~]# ./
gradediv.sh
请输入您的分数(0-100):89
89 分!优秀