使用if选择结构
学习目标
1.检测/media/cdrom目录,若不存在则创建
2.检测并判断指定的主机是否可ping通
3.从键盘读取一个论坛积分,判断论坛用户等级,等级分类如下:
大于等于90 神功绝世
大于等于80,小于90 登峰造极
大于等于70,小于80 炉火纯青
大于等于60,小于70 略有小成
小于60 初学乍练
方案
if单分支的语法组成:
if 条件测试
then
命令序列
fi
if双分支的语法组成:
if 条件测试
then
命令序列1
else
命令序列2
fi
if多分支的语法组成:
if 条件测试1 ;then
命令序列1
elif 条件测试2 ;then
命令序列2
else
命令序列n
fi
步骤
实现此案例需要按照如下步骤进行。
步骤一:检测/media/cdrom目录,若不存在则创建
1)编写脚本如下:
[root@svr5 ~]# vim mountdir.sh
#!/bin/bash
dir="/media/cdrom/"
if [ ! -d $dir ]
then
mkdir -p $dir
fi
[root@svr5 ~]# chmod +x mountdir.sh // 添加可执行权限
2)测试、验证脚本功能
[root@svr5 ~]# ls -ld /media/cdrom //本 来没有/media/cdrom目录
ls: /media/cdrom: 没有那个文件或目录
[root@svr5 ~]# ./mountdir.sh //执行脚本
[root@svr5 ~]# ls -ld /media/cdrom //再检查已经有了
drwxr-xr-x 2 root root 4096 12-11 15:16 /media/cdrom
有了/media/cdrom文件夹以后,再次执行上述脚本,实际上不做任何有效操作:
[root@svr5 ~]# ./mountdir.sh
步骤二:检测并判断指定的主机是否可ping通
1)分析任务需求
使用ping命令检测目标主机时,人工可直接判断反馈结果,而脚本却不方便。但是当ping测试成功时,执行状态 ? 的 值 为 0 ; 而 p i n g 测 试 失 败 时 , ?的值为0