用脚本写带选项的用户
要求如下:
- 只支持三个选项 ‘–del’ ‘–add’ –help输入其他选项报错。
- 使用‘–add’需要验证用户名是否存在,存在则反馈存在。且不添加。 不存在则创建该用户,切>添加与该用户名相同的密码。并且反馈。
- 使用‘–del’ 需要验证用户名是否存在,存在则删除用户及其家目录。不存在则反馈该用户不存>在。
- –help 选项反馈出使用方法
- 支持以,分隔 一次删除多个或者添加多个用户。
- 能用echo $? 检测脚本执行情况 成功删除或者添加为0,报错信息为其他数字。
- 能以,分割。一次性添加或者 删除多个用户。 例如 adddel.sh –add user1,user2,user3…….
- 不允许存在明显bug。
#!/bin/bash
if [ $# -eq 0 -o $# -gt 2 ]
then
echo -e "使用方法: "
echo -e "$0 --add username"
echo -e "$0 --del username"
echo -e "$0 --help"
exit 1
fi
case $1 in
--add)
n=0
for u in `echo $2|sed 's/,/ /g'`; do
if awk -F: '{print $1}' /etc/passwd |grep -qw "$u"
then
echo "用户 $u 已存在!!!"
else
useradd $u
echo -e "$u\n$u"|passwd $u >/dev/null 2>&1
echo "用户 $u 添加成功!!!"
n=$[$n+1]
fi
done
if [ $n -eq 0 ]; then
echo "使用[--help]获得帮助"
exit 2
fi
;;
--del)
n=0
for u in `echo $2|sed 's/,/ /g'`; do
if awk -F: '{print $1}' /etc/passwd|grep -qw "$u"
then
userdel -r $u
echo "用户 $u 删除成功!!!"
n=$[$n+1]
else
echo "用户 $u 不存在!!!"
fi
done
if [ $n -eq 0 ]; then
exit 3
fi
;;
--help)
echo -e "[--add]\t创建用户且密码与用户名相同"
echo -e "\t语法 :--add user1,user2,user3...\n"
echo -e "[--del]\t删除用户"
echo -e "\t语法 :--del user1,user2,user3...\n"
echo -e "[--help]\t获得帮助"
;;
*)
echo -e "使用方法: "
echo -e "$0 --add username"
echo -e "$0 --del username"
echo -e "$0 --help"
exit 1
;;
esac