linux下Bash编程case语句及编写脚本(八)
1.case语句,格式如下:
case 变量 in
值1)
语句1
...
;; 每分支语句以分号结束
值2)
语句2
...
;;
*) 其他,相当于if语句else
语句3
...
;;
esac 整条case语句结束
2.编写一个任意添加与删除用户的脚本,要求如下:
2.1:如果脚本选项是-a或--add:,将添加用户; 如果选项是-d或--del,将删除用户,
如果是-h或--help显示帮助信息,如果是-v或--verbose显示执行过程,否则不显示执行过程
2.2:脚本选项后面的参数可任意指定多个用户并且用逗号隔开,密码同用户名;
2.3:用户存在就提示不能添加,用户不存在就不能删除用户;尽可能有相关提示信息
vim admuser.sh 创建一个脚本文件:
#!/bin/bash
ADD=0 增加用户变量开关
DEL=0 删除用户变量开关
DEBUG=0 作为显示执行过程变量开关
#以下判断脚本后面的参数是否正确
for I in `seq 1 $#`; do
if [ $# -gt 0 ];then
case $1 in
-v|--verbose)
DEBUG=1
shift
;;
-h|--help)
echo "Usage:`basename $0` -v|--verbose | -h|--help | -a|--add user1,user2... -d|--del user1,user2..."
exit 0
;;
-a|--add)
ADD=1
ADDUSERS=$2
shift 2
;;
-d|--del)
DEL=1
DELUSERS=$2
shift 2
;;
*)
echo "Usage:`basename $0` -v|--verbose | -h|--help | -a|--add user1,user2... -d|--del user1,user2..."
exit 8
;;
esac
fi
done
#以下判断增加用户
if [ $ADD -eq 1 ]; then
for USER in `echo "$ADDUSERS" | sed ‘s#,# #g‘`; do 取出要添加用户列表
if ! id $USER &> /dev/null; then 判断用户是否存在,不存在则添加
useradd $USER
echo $USER | passwd --stdin $USER &> /dev/null
[ $DEBUG -eq 1 ] && echo "$USER add successfully"
else
[ $DEBUG -eq 1 ] && echo "$USER exist"
fi
done
fi
#以下判断删除用户
if [ $DEL -eq 1 ]; then
for USER in `echo "$DELUSERS" | sed ‘s/,/ /g‘`; do 取出要删除用户列表
if id $USER &> /dev/null; then 判断用户是否存在,存在则删除
userdel -r $USER
[ $DEBUG -eq 1 ] && echo "$USER del finished"
else
[ $DEBUG -eq 1 ] && echo "$USER no exist"
fi
done
fi
本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1764856
原文地址:http://willow.blog.51cto.com/6574604/1764856