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

5案例5:编写一个批量添加用户脚本

5.1问题

本例要求在虚拟机server0上创建/root/batchusers脚本,任务目标如下:

  1. 此脚本要求提供用户名列表文件作为参数
  2. 如果没有提供参数,此脚本应该给出提示Usage: /root/batchusers,退出并返回相应值
  3. 如果提供一个不存在的文件,此脚本应该给出提示Input file not found,退出并返回相应值
  4. 新用户的登录Shell为/bin/false,无需设置密码
  5. 列表测试文件:http://classroom/pub/materials/usrlist
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章