根据提供的参数来判断是添加或删除用户:
第一个参数判断添加或删除,–add表示添加用户,–del表示删除用户,第二个参数为要添加或删除的用户列表
#!/bin/bash
# 根据用户提供的参数和用户列表添加或删除用户
# 获取用户输入的参数
if [ $# -lt 1 ];
then
echo "程序至少需要输入1个参数"
exit 8
fi
if [ $1 == '--add' ] || [ $1 == '--del' ];
then
if [ $# -lt 2 ];
then
echo "$1至少需要两个参数"
exit 8
fi
fi
if [ $1 == '--add' ];
then
#添加5个用户
for i in `echo $2 | sed 's/,/ /g'`;
do
for i in `echo $2 | sed 's/,/ /g'`;
do
#判断用户是否存在,不存在则添加
if id $i &> /dev/null;then
echo "$i已存在,不能重复添加"
fi
useradd $i
#给用户添加密码,密码同用户名
echo $i | passwd --stdin $i &> /dev/null
done
elif [ $1 == '--del' ];
then
#判断用户是否存在,存在即删除
for i in `echo $2 | sed 's/,/ /g'`;
do
if id $i &> /dev/null;
then
#删除用户并删除其家目录
userdel -r $i &>/dev/null
else
echo "$i不存在"
fi
echo "$i不存在"
fi
done
elif [ $1 == '--help' ];
then
echo "使用方法:bash manageUser3.sh --add USER1,USER2... | bash manageUser3.sh --del USER1,USER2..."
else
echo "您给的参数不正确"
exit 8
fi
#执行如下
[root@localhost scripts]# bash manageUser3.sh --help
使用方法:bash manageUser3.sh --add USER1,USER2... | bash manageUser3.sh --del USER1,USER2...
[root@localhost scripts]# bash manageUser3.sh --add dizzy,water,edison
[root@localhost scripts]# tail -3 /etc/passwd
dizzy:x:5020:5020::/home/dizzy:/bin/bash
water:x:5021:5021::/home/water:/bin/bash
edison:x:5022:5022::/home/edison:/bin/bash
[root@localhost scripts]# bash manageUser3.sh --del dizzy,water,edison
[root@localhost scripts]# tail -3 /etc/passwd
currtest3:x:5017:5017::/home/currtest3:/bin/bash
currtest4:x:5018:5018::/home/currtest4:/bin/bash
currtest5:x:5019:5019::/home/currtest5:/bin/bash
升级版的添加用户和删除用户
#!/bin/bash
#
DEBUG=0
ADD=0
DEL=0
while [ $# -gt 0 ]
do
case $1 in
"--add")
ADD=1
ADDUSERLIST=$2
shift 2
;;
"--del")
DEL=1
DELUSERLIST=$2
shift 2
;;
--help | -h)
echo "$(basename $0) --add userlist --del userlist -v|verbose --help|-h"
exit 0
;;
-v |--verbose)
DEBUG=1
shift
;;
*)
echo "$(basename $0) --add userlist --del userlist -v|verbose --help|-h"
exit 7
;;
esac
done
if [ $ADD -eq 1 -a $DEBUG -eq 1 ];
then
for user in $(echo $ADDUSERLIST | sed 's#,# #g');
do
if ! id $user &>/dev/null;then
useradd $user &>/dev/null && echo "USER:$user successfully"
fi
done
elif [ $ADD -eq 1 ];
then
for user in $(echo $ADDUSERLIST | sed 's#,# #g');
do
if ! id $user &> /dev/null;then
useradd $user &>/dev/null
fi
done
fi
if [ $DEL -eq 1 -a $DEBUG -eq 1 ];
then
for user in $(echo $DELUSERLIST | sed 's#,# #g');
do
userdel $user &>/dev/null && echo "USER:$user del successfully"
done
elif [ $DEL -eq 1 ];
then
for user in $(echo $DELUSERLIST | sed 's#,# #g');
do
userdel $user &>/dev/null
done
fi