Linux学习--shell脚本添加或删除用户

根据提供的参数来判断是添加或删除用户:
第一个参数判断添加或删除,–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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值