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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以帮你解决这个问题。 在 Linux 系统中,可以使用 crontab 命令来设置定时任务。具体操作如下: 1. 打开终端,输入 crontab -e 命令来编辑定时任务。 2. 在打开的文本编辑器中,按照以下格式添加定时任务: ``` * * * * * /path/to/your/script.sh ``` 其中,星号表示任意时间,每个星号分别代表分钟、小时、日期、月份、星期几。例如,上述格式表示每分钟执行一次 script.sh 脚本。 3. 保存并退出编辑器。 注意,如果你想要在定时任务中使用命令行参数,可以在脚本路径后面添加相应的参数,例如: ``` * * * * * /path/to/your/script.sh arg1 arg2 ``` 这样就可以在每分钟执行一次 script.sh 脚本,并传递两个参数 arg1 和 arg2。 希望这个回答能够帮到你! ### 回答2: 在Linux中,我们可以使用计划任务来执行shell脚本。计划任务是一种自动化执行任务的方式,它可以在指定的时间间隔内定期运行脚本。 要使用计划任务执行shell脚本,我们可以使用crontab命令编辑cron表。Cron表是一个用于设置计划任务的文件,它包含了要执行的命令以及执行的时间。 首先,我们可以通过运行"crontab -e"命令来编辑cron表。然后,我们可以添加一条新的记录,指定我们要执行的shell脚本和执行的时间。 例如,如果我们希望每天在上午8点执行一个名为"myscript.sh"的脚本,我们可以在cron表中添加以下内容: 0 8 * * * /path/to/myscript.sh 在这个例子中,0 8 * * *代表了每天的8点。"/path/to/myscript.sh"是我们脚本的完整路径。 保存并退出cron表后,计划任务将会自动执行我们指定的脚本。我们可以使用"crontab -l"命令来列出当前的计划任务。 此外,我们还可以通过crontab命令的其他选项来调整计划任务的执行频率和时间间隔。比如,我们可以使用"crontab -r"命令来删除现有的计划任务,使用"crontab -l"命令来列出当前的计划任务,以及使用"crontab -u"命令来编辑其他用户的计划任务。 总而言之,通过使用crontab命令编辑cron表,我们可以方便地执行定时任务的shell脚本。这为我们自动化和定期执行一些重复性任务提供了便利。 ### 回答3: Linux计划任务是一种用于在特定时间或在特定条件下自动执行任务的功能。通过使用cron工具,我们可以定期执行shell脚本并实现各种自动化操作。 要在Linux中安排一个计划任务来执行shell脚本,我们需要遵循以下步骤: 1. 创建一个包含我们要执行的shell脚本的文件。我们可以使用任何文本编辑器来编写shell脚本,并确保在文件的开头添加#!/bin/bash以指定我们要使用的shell。 2. 保存shell脚本,并确保我们具有执行权限。使用chmod命令,我们可以为脚本文件分配可执行权限。例如,我们可以运行chmod +x script.sh命令来赋予script.sh脚本可执行权限。 3. 打开计划任务文件。Linux计划任务使用crontab命令来访问并编辑计划任务。我们可以通过运行crontab -e命令来打开计划任务文件。 4. 编辑计划任务文件。计划任务文件是一个由cron工具使用的文本文件。每一行代表一个计划任务的定义。每个计划任务定义行由五个时间字段和一个命令字段组成。每个时间字段定义了任务执行的周期和时间。命令字段包含要在定期运行时执行的命令。我们可以在文件的末尾添加一个新的计划任务定义行。 5. 保存和退出计划任务文件。编辑完成后,我们可以保存并退出计划任务文件。使用Ctrl + X快捷键,然后输入Y并按下Enter来保存文件。 计划任务将在下一个预定的时间执行我们的shell脚本。我们可以使用crontab命令的其他选项,如-l来列出当前的计划任务,-r来删除所有计划任务等。 这样,我们就成功地在Linux中安排了一个计划任务来执行shell脚本。通过定期运行shell脚本,我们可以自动执行各种操作,如备份数据、定期清理临时文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值