shell脚本之批量添加用户

    没错,这是一个简单的脚本,不写不知道,写了才发现自己多垃圾。

    我是一名普通的公司网络管理,接触linux不长,一直理想都是和马哥学习linux,可惜因为拖家带口的原因,没办法交学费和马哥学习,心里小小遗憾吧。每天看着马哥的文章以及百度搜索的视频文章学习,感觉自己学习的很杂很乱和累。看着我同学现在都快从马哥完业了,说着我听不懂的语句,特霸气。如果有机会,真希望和他一样,听马哥linux视频系统学习。

    微微一叹,唉。

    下面的脚本主要用于批量添加用户的脚本,本来很简单的脚本,但是添加了一些判断,验证自己学习。

    1.判断用户输入是否有误

    2.判断用户是否存在,存在就跳过不再处理

代码如下:

#/bin/bash
#批量添加用户脚本

#判断用户是否存在函数
function panduan()
	{
		for nametmp in $(cat /tmp/user.txt)
			do
				if [ $nametmp = $1 ]
					then
						return 6
						break
				fi
			done
	}
cat /etc/passwd|awk -F : '{print $1}'&>>/tmp/user.txt
#读取用户输入信息
read -p "请输入前缀:" name
read -p "请输入个数:" num
read -p "请输入初始密码:" password

#判断输入是否为空
if [ -z "$name" -o -z "$num" -o -z "$password" ]
	then
		echo "输入不能为空"
	else
#判断用户个数是否格式为数字,不为数字就退出	
	echo $num|grep ^[0-9]*$&>/dev/null
	if [ $? -eq 0 ]
		then
			for i in `seq 1 $num`
				do

#判断用户是否存在
					panduan $name$i&>/dev/null
					if [ $? -ne 6 ]
						then
						useradd $name$i>>/dev/null
						echo "$password"|passwd --stdin $name$i>>/dev/null
						echo "用户名:$name$i   密码:$password  创建成功"
					else 
						echo "用户$name$i存在,不做处理"
						
					fi
			done
		else
			echo "用户个数输入有误,请输入数字"
	fi
				
fi

请求大家指教一下,有没有更简单的方法。

原创文章,作者:lyy910203,如若转载,请注明出处:http://www.178linux.com/22756

(0)
lyy910203lyy910203
上一篇 2016-07-07
下一篇 2016-07-07

相关推荐

  • 重启nginx服务时提示 nginx: [error] invalid PID number “” in “/usr/local/var/run/nginx/nginx.pid”

    解决方法:nginx -c /etc/nginx/nginx.conf       -c后面的路径为nginx的配置文件

    Linux干货 2017-03-30
  • GRUB启动故障排除和内核编译

    如何进入光盘应急系统(以下修复操作仅适用于GRUB legacy, 不适用于GRUB2): 步骤一:给主机挂上安装光盘, 或者有相应启动镜像的硬盘分区(可移动的分区) 步骤二:开机时选择CDROM先启动 步骤三:进入光盘启动界面选择应急救援模式 步骤四: 不选择设置网络接口, 直接读取磁盘分区并以读写方式挂载 步骤五: 选择shell进入bash中对磁盘进行…

    Linux干货 2016-09-12
  • 马哥教育网络19期+第十二周课程练习

    1、请描述一次完整的http请求处理过程; a.向根域名服务器请求解析域名,然后根服务器返回相应的IP信息; b.用户的Web浏览器向服务器端的80端口通过三次握手建立TCP连接; c.建立完TCP连接后发送HTTP请求,请求的格式包括请求方法、URL和协议版本号,方法有GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE,如: &n…

    Linux干货 2016-08-22
  • 第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost tmp]# cat /proc/partitions major minor #blocks name 8 16 52428800 sdb 8 17 1049041…

    Linux干货 2017-03-06
  • Linux命令格式及基础命令使用

    Linux命令格式command [选项] [参数]其中 选项 以 – 开始,多个选项可用一个-连起来,如ls -l -a 与ls -la相同。根据命令的不同,参数分为可选的或必须的。ifconfig格式:ifconfig [网络设备] [参数]命令功能:命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。示例 :i…

    Linux干货 2018-03-03
  • Package Manager

    Package Manager Package 管理工具的分类 rpm yum Source Code Install 管理工具的分类 前段管理工具:Debian:debRedhat,Suse…:rpm 前端管理工具:Debian:apt-getRedhat:yum,dnf RPM RPM是什么?RPM全称是RPM Package Manager…

    2016-03-27