if条件测试语句
1、单分支的if条件语句结构,这种结构仅用if、then、fi关键词组成,只在条件成立后才执行预设命令,相当于口语的“如果……那么……”,属于最简单的一种条件判断结构,操作语法如图所示:使用单分支的if条件语句来判断某个目录是否存在,若已经存在就结束条件判断和整个Shell脚本,而如果不存在则去创建这个目录:[root@linuxprobe ~]# vim mkcdrom.sh#!/bin/bashDIR="/media/cdrom"if [ ! -e $DIR ]thenmkdir -p $DIRfi因为第5章才会去学习用户身份与权限,此时继续直接用“bash 脚本名称”的方式来执行脚本即可,顺利执行脚本文件后正常情况下是没有任何输出信息的,咱们可以使用ls命令验证下这个目录是否已经成功创建:[root@linuxprobe ~]# bash mkcdrom.sh[root@linuxprobe ~]# ls -d /media/cdrom/media/cdrom

2、双分支的if条件语句结构,这种结构仅用if、then、else、fi关键词组成,进行两次条竭惮蚕斗件判断匹配,两次判断中任何一项匹配成功后都会执行预设命令,相当于口语的“如果……那么……或者……那么……”,也是属于很简单的一种条件判断结构,操作语法如图所示:使用双分支的if条件语句来验证某个主机是否在线,然后根据判断执行返回值结果分别给予对方主机是在线还是不在线的提示信息。脚本中我主要是使用ping命令来测试与对方主机的网络联通性,而linux系统中的ping命令不像windows系统一样仅会尝试四次就结束,因此为了避免用户等待时间过长,而通过-c参数来规定尝试的次数,-i参数定义每个数据包的发送间隔时间以及-W参数定义最长的等待超时时间。[root@linuxprobe ~]# vim chkhost.sh #!/bin/bashping -c 3 -i 0.2 -W 3 $1 &> /dev/nullif [ $? -eq 0 ]thenecho "Host $1 is On-line."elseecho "Host $1 is Off-line."fi
