Shell判断:流程控制—if(二)

一、多分支结构

        1、语法:

  •                  if 条件测试1
  •                 then 命令序列
  •                 elif 条件测试2
  •                 then 命令序列
  •                 elif 条件测试3
  •                 then 命令序列....
  •                 else 命令序列
  •                 fi

        2、示例:

                需求:编写脚本,取出系统时间的小时,对数字进行判断 6--10 this is morning ;11--13 this is noon ;14--18 this is afternoon ;其他 this is night         

[root@localhost ~]# vim time.sh    #编写脚本
#!/bin/bash
hour=`date +%H`
if  [ $hour  -ge 6 -a $hour -le 10 ]
then
echo "this is morning"

elif  [  $hour -ge 11 -a $hour -le 13  ]
then
echo "this is noon"

elif [ $hour -ge 14 -a $hour -le 18   ]
then
echo "this is afternoon"

else
echo "this is night "
fi

[root@localhost ~]# chmod +x time.sh     #脚本授权

[root@localhost ~]# ./time.sh     #执行脚本
this is night 

     Shell判断:流程控制—if(二)_第1张图片 

        Shell判断:流程控制—if(二)_第2张图片

二、嵌套结构

        1、语法:

  •                 if 条件测试1 then 命令序列
  •                 if 条件测试1 then 命令序列
  •                 else 命令序列
  •                 fi
  •                 else 命令序列
  •                 fi 

        2、示例:

                需求:                Shell判断:流程控制—if(二)_第3张图片 

        

[root@localhost ~]# vim useradd2.sh    #脚本编写
#!/bin/bash
read -p "请输入新用户名:" name
id $name &> /dev/null
if [ $? -eq  0   ]
then
echo "$name 用户已经存在,不需要创建。"
else
read -p "用户即将创建,请输入用户的新密码:" pass
if [ ${#pass}  -ge 7  ] ; then
useradd $name
echo "$name 用户创建成功"
echo $pass | passwd --stdin  $name
echo "$name 用户的密码是123456"
else
echo "输入的密码不足7位,创建用户失败"
fi
fi

[root@localhost ~]# chmod  +x useradd2.sh    #脚本授权

[root@localhost ~]# ./useradd2.sh     #执行脚本
请输入新用户名:op
op 用户已经存在,不需要创建。
[root@localhost ~]# ./useradd2.sh 
请输入新用户名:yy
用户即将创建,请输入用户的新密码:123
输入的密码不足7位,创建用户失败
[root@localhost ~]# ./useradd2.sh 
请输入新用户名:yy
用户即将创建,请输入用户的新密码:123456789
yy 用户创建成功
更改用户 yy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
yy 用户的密码是123456

Shell判断:流程控制—if(二)_第4张图片 

Shell判断:流程控制—if(二)_第5张图片 

 

你可能感兴趣的:(Shell,linux,bash)