shell编写一个批量添加用户脚本
shell编写一个批量添加用户脚本
5.1问题
本例要求在虚拟机server0上创建/root/batchusers脚本,任务目标如下:
此脚本要求提供用户名列表文件作为参数
如果没有提供参数,此脚本应该给出提示Usage:/root/batchusers,退出并返回相应值
如果提供一个不存在的文件,此脚本应该给出提示Input file not found,退出并返回相应值
新用户的登录Shell为/bin/false,无需设置密码
列表测试文件:http://classroom/pub/materials/userlist
5.2方案
单分支if选择结构:
if条件测试操作
then
命令序列....
fi
脚本的退出状态:取决于退出前最后一条命令的$?值,或者“exit整数值”指定。
列表式for循环结构:
for变量名in值1值2值3....
do
命令序列($变量名)
done
使用命令替换来获取命令结果:$(命令行)
5.3步骤
实现此案例需要按照如下步骤进行。
步骤一:编写batchusers批量添加用户脚本
1)编写脚本代码
[root@server0~]#vim /root/batchusers
#!/bin/bash
if [ $# -eq 0];then
echo "Usage:/root/batchusers<userfile>" > &2
exit 1
fi
if [ !-f $1 ];then
echo "Input file not found" > &2
exit 2
fi
for name in $(cat$1)
do
useradd -s /bin/false $name
done
2)添加x执行权限
[root@server0~]#chmod+x/root/batchusers
步骤二:测试batchusers批量添加用户脚本
1)下载用户列表测试文件:
[root@server0~]#wget http://classroom/pub/materials/userlist-O/root/userlist
....
2016-11-27 17:23:32(2.83 MB/s)-‘/root/userlist’saved[27/27]
[root@server0~]#cat/root/userlist//检查下载文件
duanwu
zhongqiu
zhsan
lisi
2)实现批量添加用户:
[root@server0~]#/root/batchusers/root/userlist
[root@server0~]#id duanwu
uid=1006(duanwu)gid=1006(duanwu)groups=1006(duanwu)
3)测试其他异常处理:
[root@server0~]#/root/batchusers//未提供列表文件
Usage:/root/batchusers<userfile>
[root@server0~]#echo $?
1
[root@server0~]#/root/batchusers/root/userlist.txt//提供的列表文件找不到
Input file not found
[root@server0~]#echo$?
2
shell编写一个批量添加用户脚本的更多相关文章
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...
- shell应用之批量添加用户实例
这里要实现功能介绍 读取一个用户列表文件 给列表中的用户添加随机密码需要包含大小写字符和数字 保存对应的用户和密码文件 这些用户属于同个用户组 1.列表文件 [root@mail ~]# cat li ...
- (1)使用bash脚本实现批量添加用户
脚本实现内容: 可以指定用户名前缀,指定添加数量的批量添加用户脚本,密码为10为随机小写字母,并把用户名和密码写入文件中. 脚本代码: #!/bin/bashread -p "用户名前缀:& ...
- (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加
通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...
- Shell 脚本批量添加用户和用户密码
#!/bin/bash#批量添加用户 设置密码for i in `seq 1 10`do if ! id user$i &> /dev/null then useradd user$i ...
- centos7 lvm合并分区脚本初探-linux性能测试 -centos7修改网卡名字-jdk环境安装脚本-关键字查询文件-批量添加用户
1.#!/bin/bash lvmdiskscan | grep centos > /root/a.txt a=`sed -n '1p' /root/a.txt` b=`sed -n '2p' ...
- shell编写一个判断脚本
shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/roo ...
- 利用shell实现批量添加用户
批量添加用户并设置随机密码,把添加的用户的名字和密码保存到文件中. [root@lamp scripts]# cat user.sh #!/bin/sh ` do pass=$(-) //取随机数的方 ...
- 用户管理 之 在Linux系统中,批量添加用户的操作流程
一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...
随机推荐
- 【MySQL】Docker搭建MySQL8.0
目录 Docker搭建MySQL8.0 目的: 1.安装Docker 2.查看docker镜像 3.拉取mysql官方镜像 4. 查看目前的镜像 5.运行docker mysql镜像 6.查看目前运行 ...
- Posix线程编程指南(5)
Posix线程编程指南(5) 杨沙洲 原文地址:http://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part5/ 杂项 ...
- (转)C++中的delete
转载自:http://blog.csdn.net/sparkliang/article/details/3670930 为了防止内存泄漏,每一个动态内存分配必须有一个等同相反的内存释放操作,delet ...
- 普通索引和唯一索引如何选择(谈谈change buffer)
假设有一张市民表(本篇只需要用其中的name和id_card字段,有兴趣的可以翻看“索引”篇,里面有建表语句) 每个人都有一个唯一的身份证号,且业务代码已经保证不会重复. 由于业务需求,市民需要按身份 ...
- AspNetCore3.1_Secutiry源码解析_3_Authentication_Cookies
系列文章目录 AspNetCore3.1_Secutiry源码解析_1_目录 AspNetCore3.1_Secutiry源码解析_2_Authentication_核心流程 AspNetCore3. ...
- Java 锁详解(转)
转自 https://www.cnblogs.com/jyroy/p/11365935.html Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相 ...
- Python下载各种功能包出问题
问题详情 点击之后出现 AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader' 解决方法 c ...
- Swift 4.0 字符串(String)学习
定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...
- Swift 4.0 数组(Array)学习
定义数组常量(常量只有读操作) let array1: [Int] = [11, 55, 5] let array2 = [11, 55, 5] 定义数组变量 var array: [Int] = [ ...
- 测试leader的职责
为了项目过程管理更加紧凑,控制项目测试进度.测试质量, 需要指定一个测试leader,测试leader的主要职责是测试边界的划定,整体进度的把控,项目风险识别和应对.具体工作内容如下: 一.需求阶段: ...