Creacion de usuarios (GNU/LINUX) masiva Script

Nombre:crear_usuarios.sh
Autor:grymo
Origen:
Lenguaje:Bash
Licencia:Libre
Propósito: Automatización en la creación masiva de usuarios GNU/LINUX
Ejemplos de uso: Muchas veces nos hemos encontrado que necesitamos o debemos realizar cosas a gran escala, como por ejemplo agregar varios usuarios a un Servidor, por lo cual necesitamos crear varias cuentas para sistemas GNU/LINUX , algo que si lo hacemos a mano, seria muy tedioso y largo de realizar, es por eso que la mejor forma es mediante un Script que Cree los usuarios/cuentas.
Para utilizarlo es simple:

./crear_usuarios.sh parametro

Parametro sera igual a una lista .csv con la siguiente estructura:
Yañez:Gonzalez:Patricio Nasario:7657123

Comentarios : Las lineas con # son otra forma de agregar usuarios con otros comandos y o otras utilidades.
Codigo no comentado.

#!/bin/bash
clear
if [ "`id -u`" != 0 ] ; then
echo "Necesito tener permisos de root para ejecutar mis tareas,"
else
if test $# -eq 1
then
echo "Parametro Correcto"
echo -e "Se procedera a la creacion de usuarios \n"
lineas=$(wc -l $1 | cut -d " " -f 1 )
#echo "Cantidad de lineas $lineas"
i=1
arch=$(cat $1 | tr [:upper:] [:lower:] )
for ((i=$lineas; i>0; i--))
do
a1=$(cat $1 |head -$i | tail -1 |cut -d ":" -f 1)
a2=$(cat $1 |head -$i | tail -1 |cut -d ":" -f 2 | cut -c 1 )
n=$(cat $1 |head -$i | tail -1 |cut -d ":" -f 3 | cut -c 1)

users=$a1$a2$n
users=$(echo $users | tr [:upper:] [:lower:] | sed 's/ñ/n/g' | sed 's/á/a/g' | sed 's/é/e/g'| sed 's/í/i/g'| sed 's/ó/o/g'| sed 's/ú/u/g' | sed s/" "/""/g)
passw=$(cat $1 |head -$i | tail -1 |cut -d ":" -f 4 )
existe=$(cat /etc/shadow | grep ^"$users:")
if [ -z $existe ]
then
nom=$(cat $1 |head -$i | tail -1 | cut -d ":" -f3)
ape2=$(cat $1 |head -$i | tail -1 | cut -d ":" -f2)
gecos=$nom$a1$ape2
crear=$(echo -e "$passw\n$passw\n$gecos\n\n\n\n" | adduser $users 2>/dev/null)
#crear=$(useradd -d /home/$users -s /bin/bash -m $users)
#crear2=$( echo -e "$passw\n$passw" | passwd $users 2>/dev/null)
echo -e "Creando usuario ..."
echo -e "Nombre Completo : $gecos"
echo -e "Usuario: $users creado correctamente \n"
echo -e "Usuario: $users creado correctamente \n" >> creados.txt
else
echo -e "Usuario : $users Existe \n"
fi
done
else
echo -e "Parametro Incorrecto \nSe debe ejecutar ./beta.sh parametro"
fi
fi