LINUX 批量添加删除用户(bash 循环)

x33g5p2x  于2021-11-19 转载在 Linux  
字(1.6k)|赞(0)|评价(0)|浏览(681)

添加用户

由于添加的用户名采用统一的其中因此可使用user+数字方式实现,
前缀usero0由用户手动输入,后缀的数字可通过循环逐次递增:因为用户名和密码相
同,可在创建用户后,使用代表用户名的变量为用户设置密码:此外需对命令的执行
情况进行判断,若密码设置失败,应给出提示。

先确定输入字符串
就是用户名前的qwe类似的

#!/bin/bash
#addusers

echo "------add 9 users------"
echo "please input a string:"
read user

然后添加用户 for循环

for i in {1..9}; do 
   username=$user$i

添加上了useri
即user0…9

判断
/dev/null :
在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。

stdin,标准输入,通过前一个管道的数据,作为口令输入,一般用在 shell script 中

if useradd $username> /dev/unll; then
   echo "$username"|passwd --stdin $username

如果username重定向空设备 然后
这里定义passwd就是输入 username

最后判断账号密码是否相同
if [ $? -eq 0 ]该语句是什么含义?
$0: shell或shell脚本的名字 $*:以一对双引号给出参数列表
$@:将各个参数分别加双引号返回
$#:参数的个数 $_:代表上一个命令的最后一个参数
$$:代表所在命令的PID
$!:代表最后执行的后台命令的PID $?:代表上一个命令执行后的退出状态

if [ $? -eq 0 ]该语句是什么含义? 解:代表上一个命令执行后的退出状态

if [ $? -eq 0 ]; then
   	echo "add $username successful"
   else 
   	echo "$username added,change password failure"
   fi
else
	echo "add $username failure"
fi

done
exit 0

检查上一个命令是否成功,然后输出成功

总代码:

#!/bin/bash
#addusers

echo "------add 9 users------"
echo "please input a string:"

read user

for i in {1..9}; do 
   username=$user$i
   if useradd $username> /dev/unll; then
   echo "$username"|passwd --stdin $username
   if [ $? -eq 0 ]; then
   	echo "add $username successful"
   else 
   	echo "$username added,change password failure"
   fi
else
	echo "add $username failure"
fi

done
exit 0

效果:

删除用户

跟添加的思路差不多
Linux userdel命令详解:删除用户

#!/bin/bash
#delusers

echo "-----del 9 users------"
echo "please input a string:"

read user

for i in {1..9};do 
 username=$user$i
 userdel -r $username
 if [ $? -eq 0 ]; then
 	echo "del $username successful"
 else
 	echo "del $username failure"
 fi
done
exit 0

相关文章