input.csv文件内容:作为批量化创建账号的信息存放文档

wang@wang-PC:~/test$ cat input.csv 
1001,test1,1001,test,/home/test1,123456
1002,test2,1001,test,/home/test2,123456
1003,test3,1001,test,/home/test3,123456
#!/bin/bash
#
input="input.csv"
while IFS=',' read -r uid username gid groupname home password
do
        # echo "$uid" "$username" "$gid" "$groupname" "$home" "$password"
        echo "开始创建用户: $username"        
        # 进行UID判断,用户判断,GID判断,组名判断,home判断
        # 如果上述判断均为not exist,则可以使用完整命令创建用户
        # 命令为两条:① 创建组:groupadd -g $gid $groupname
        #② 创建用户,密码,及家目录:useradd -u $uid -g $gid -s /bin/bash -m -d $home $username
        #③ 创建密码:echo $password| passwd --stdin $username
        # 如果组名称已存在,显示组已存在,判断GID是否与文档要求一样,一样可直接创建用户,不一样则不创建用户提示GID exits,but GID is inconsistent!
        # 判断家目录是否存在,如果不存在可创建用户,如果存在则继续判断家目录是否有文件,没有则可创建用户,有则提示:home directory exits and is not NULL!
        # 用户创建成功后提示用户$username 已创建,密码设置成功提示:$username秘钥以分发;

        #--------------------------------------------------------------------------------
        #判断上述都不存在的情况;
        if (( awk -F : '{print $3}' /etc/group|grep -w "$gid" >/dev/null 2>&1 ) && ( ! awk -F : '{print $1}' /etc/group|grep -w "$groupname" >/dev/null 2>&1)) \
|| (( awk -F : '{print $1}' /etc/group|grep -w "$groupname" >/dev/null 2>&1) && ( ! awk -F : '{print $3}' /etc/group|grep -w "$gid" >/dev/null 2>&1)) 
        then
                echo -e "\033[5;31m 警告:组($groupname)  或 GID($gid) 已经存在,且与要求不一致,请检查! \033[0m"
                echo -e "\033[5;34m ERROR:用户 $username 不能被创建! \033[0m"
        elif (! awk -F : '{print $1}' /etc/group|grep -w "$groupname" >/dev/null 2>&1) &&(! awk -F : '{print $2}' /etc/group|grep -w "$gid" >/dev/null 2>&1)
        then
                sudo groupadd -g $gid $groupname
                if (! id $username >/dev/null 2>&1) && (! awk -F : '{print $3}' /etc/passwd |grep -w "$uid" >/dev/null 2>&1)
                then
                        if [ -d $home ]&& (ls -A $home >/dev/null 2>&1)
                        then
                                echo -e "\033[5;31m 警告:家目录$home已存在,且不为空,请检查目录! \033[0m"
                        else
                                useradd -u $uid -g $gid -s /bin/bash -m -d $home $username
                               # grep "$password"|passwd --stdin $username
                                #grep "$password"|passwd --stdin $username
                                echo $username:$password |`sudo chpasswd`
                                echo "$username 创建成功,密码已分发!"
                        fi
                else 
                        echo -e "\033[5;31m 警告:用户名 $username 或UID $uid 已存在,请检查! \033[0m"
                        echo -e "\033[5;34m ERROR:用户 $username 不能被创建! \033[0m"
                fi
        else
                if (! id $username >/dev/null 2>&1) && (! awk -F : '{print $3}' /etc/passwd |grep -w "$uid" >/dev/null 2>&1 )
                then
                        if [ -d $home ] && (ls -A $home >/dev/null 2>&1)
                        then
                                echo -e "\033[5;31m 警告:家目录$home已存在,且不为空,请检查目录! \033[0m"
                        else
                                useradd -u $uid -g $gid -s /bin/bash -m -d $home $username
                                #grep "$password"|passwd --stdin $username
                                echo $username:$password |`sudo chpasswd`
                                echo "$username 创建成功,密码已分发!"
                                echo "$username 用户已创建成功,密码已分发。"
                        fi

                else 
                        echo "警告:用户名 $username 或UID $uid 已存在,请检查!"
                fi
        fi
done < "$input"