shell编写一个批量添加用户脚本

时间:2024-11-01 19:08:08

                                                      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