要求
已有一個檔案userlist,裡面有三個使用者名,執行腳本時建立這三個使用者,并提示成功建立,
還有密碼檔案passlist,裡面有三個密碼,分别對應上面的三個使用者,分别改密碼,并提示成功。
代碼
#!/bin/bash
#權限檢查,隻有root使用者才可以建立使用者
[ "$USER" != "root" ] && {
echo -e "\033[31mERROR: permission deny !!\033[0m"
exit
}
#檔案不能為空
[ -z $1 ] && {
echo -e "\033[31mERROR: Pleaase input usernamefile following script !!\033[0m"
exit
}
[ -z $2 ] && {
echo -e "\033[31mERROR: Pleaase input passwordfile following script !!\033[0m"
exit
}
#檔案存在檢查
[ -e $1 ] || {
echo -e "\033[31mERROR: usernamefile not exist !!\033[0m"
exit
}
[ -e $2 ] || {
echo -e "\033[31mERROR: passwordfile not exist !!\033[0m"
exit
}
#兩個檔案行數要一緻,sed -n $=計算行數
while [ `sed -n $= $1` != `sed -n $= $2` ]
do
echo -e "\033[31mERROR: 檔案行數不一緻 !!\033[0m"
exit
done
#x是用來記錄到第幾行也就是第幾個使用者的
export x
x=0
for i in `cat $1`
do
#先檢查使用者是不是存在
id $i &> /dev/null && {
echo $i已經存在!
}||{
#使用者不存在則建立,提示消息都放進垃圾桶
useradd $i &> /dev/null && {
echo 添加$i成功!
x=$[x+=1]
#顯示passwd第x行的内容,然後更改密碼
echo `sed -n ${x}p $2` | passwd --stdin $i &> /dev/null && {
echo $i密碼修改成功
}||{
echo 密碼修改失敗
}
}||{
echo 使用者添加失敗!
}
}
done
執行效果
可以看到會做異常檢測,并且執行成功,成功建立使用者
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI2EzX4xSZz91ZsAzNfRHLGZkRGZkRfJ3bs92YsAjMfVmepNHLoljVhJnVIZVQClGVF5UMR9Fd4VGdsATNfd3bkFGazxycykFaKdkYzZUbapXNXlleSdVY2pESa9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLldzN2AzNjZGN4EWYmNzNiVmY3QTYwUzYwgjY2cjZzAzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)