流程控制语句if
单分支结构
if [ 条件成立 ];then
执行
fi
双分支结构
if [ 条件成立 ];then
执行1
else
执行2
fi
多分支结构
if [ 条件1 ];then
执行1
elif [ 条件2 ];then
执行2。。。
elif [ 条件n ];then
执行n 。。。
else
执行。。
fi
流程控制语句case
case 变量 in
模式1)
命令1;;
模式2)
命令2;;
*)
无匹配后命令序列
esac
例子
[root@servicex script]# ./day03/test_case.sh
Usage: ./day03/test_case.sh [redhat|centos]
[root@servicex script]# ./day03/test_case.sh redhat
your parameter is redhat
[root@servicex script]# ./day03/test_case.sh centos
your parameter is centos
[root@servicex script]# cat day03/test_case.sh
#!/usr/bin/bash
#Desc:test case
#Author:lalin
#Date:2020-04-25
case $1 in
redhat)
echo "your parameter is redhat"
;;
centos)
echo "your parameter is centos"
;;
*)
echo "Usage: $0 [redhat|centos]"
exit 1
esac
添加用户
[root@servicex script]# ./day03/add_user.sh
please input username to create: lalin2
user add successed!
uid=1237(lalin2) gid=1237(lalin2) groups=1237(lalin2)
[root@servicex script]# cat day03/add_user.sh
#!/usr/bin/bash
#Desc:create user when you input the username
#Author:lalin
#Date:2020-04-25
read -p "please input username to create: " rd_uname
id $rd_uname &>/dev/null
case $? in
0)
echo "the user you input is already exists!"
;;
1)
useradd $rd_uname
if [ $? -eq 0 ];then
echo "user add successed!"
id $rd_uname
else
echo "user add faild!"
fi
;;
*)
echo "Something wrong with the shell"
exit 1
esac
删除用户
[root@servicex script]# id lalin2
uid=1237(lalin2) gid=1237(lalin2) groups=1237(lalin2)
[root@servicex script]# ./day03/del_user.sh
please input username to delete: lalin2
user delete successed!
[root@servicex script]# id lalin2
id: lalin2: no such user
[root@servicex script]# cat day03/del_user.sh
#!/usr/bin/bash
#Desc:delete user when you input the username
#Author:lalin
#Date:2020-04-25
read -p "please input username to delete: " rd_uname
id $rd_uname &>/dev/null
case $? in
1)
echo "the user you input doesnt exists!"
;;
0)
userdel -r $rd_uname
if [ $? -eq 0 ];then
echo "user delete successed!"
else
echo "user delete faild!"
fi
;;
*)
echo "Something wrong with the shell"
exit 1
esac