SHELL编程之条件判断

时间:2022-07-27 19:25:25

一、if 语句结构

(1)单分支语句结构

if  条件测试操作

  then  命令序列

fi

1 #!/bin/bash
2 MOUNT_DIR="/media/cdrom/"
3 #-d $MOUNT_DIR的意思是测试是否存在这个目录,显然不存在,为假;!为取反,所以条件测试为真,执行then后面的语句
4 if [ ! -d $MOUNT_DIR ]       
5 then
6   mkdir -p $MOUNT_DIR
7 fi

(2)双分支语句结构

if  条件测试操作

  then  命令序列1

  else   命令序列2

fi

 1 #!/bin/bash
 2 ping -c 3 -i 0.2 -W 3 $1 &> /dev/null     # -c指定发送几次包,-i指定两次ping包间隔时间(秒),-W指定如果ping不通,多久(秒)放弃ping测试,$1位置变量,接收用户输入的第一个值
 3 if [ $? -eq 0 ]                           # $? 上一条条件测试结果
 4 then                                      # 这里的then也可以和if写为一行,如 if [ $? -eq 0 ] ; then
 5   echo "Host $1 is up."  
 6 else
 7   echo "Host $1 is down."
 8 fi
 9 结果:
10 [root@www ~]# . ping.sh 127.0.0.1
11 Host 192.168.1.1 is up.

(3)多分支语句结构

if     条件测试操作1

    then  命令序列1

elif   条件测试操作2

    then  命令序列2

else 

    命令序列3

fi

1 #!/bin/bash
2 read -p "请输入您的分数(0-100):" GRADE               # 接收来自用户输入的分数,赋值给GRADE变量
3 if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
4    echo "$GRADE分!优秀"
5 elif [ $GRADE -ge 70 ] && [ $GRADE -lt 85 ];then
6    echo "$GRADE分!良好"
7 else
8    echo "$GRADE分!还需继续努力!"
9 fi