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變量名in123....

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/userlistsaved[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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM