編寫一個批量添加用戶腳本

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章