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 10:52
下一篇 2016-07-07 10:53

相关推荐

  • CentOS6.7上编译安装Apache2.2和Apache2.4

    centos6.7上如何编译安装Apache2.2和Apache2.4

    Linux干货 2016-05-29
  • 系统自动化安装

    本章内容 系统安装过程配置anaconda自动化安装系统 安装程序 CentOS系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui: 基于图形库curses的文本窗口 gui:图形窗口 安装程序启动过程 MBR…

    Linux干货 2016-09-19
  • LAMP平台基于NFS实现web服务器负载均衡

    前言 随着访问量的逐渐增大,一台web服务器可能已经无法满足需求,这就需要增加web服务器的数量了,于是问题就来了:如何保证两台服务器数据同步呢?本文将讲解如何基于NFS实现web服务器的负载均衡及数据同步。 NFS服务介绍 NFS(Network File System)网络文件系统,允许一个系统通过网络共享目录和文件,通过使用NFS,用户和程序可以像访问…

    Linux干货 2015-04-22
  • N25_第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登录到当前系统的用户的相关信息。 [root@aio ~]# who| …

    Linux干货 2016-12-19
  • vim、crontab、bash for循环练习

    1、复制/etc/rc.d/init.d/functions文件至/tmp目录,将/tmp/functions文件中的以至少一个空白字符开头的行的行首加#。 vim中支持全文查找替换功能且在查找时支持正则表达式,在替换时进行引用。先使用vim /tmp/functions,然后在vim编辑模式中输入:%s/\(^[[:space:]]\+\)/#\1/g再回…

    系统运维 2016-12-03
  • sed文本处理工具

    Sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转…

    Linux干货 2017-12-02