一、多分支结构
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
二、嵌套结构
1、语法:
- if 条件测试1 then 命令序列
- if 条件测试1 then 命令序列
- else 命令序列
- fi
- else 命令序列
- fi
2、示例:
需求:
[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