Script de creacion de usuarios. [Solucionado]

Hola gente, soy nuevo en foro (Posteando).
Directo al grano:
En mi clase de sistemas operativos, me han pedido que creara un script de creacion de usuario.
La consigna consiste en que el script tome los usuario de un archivo de texto, y les asignando una password. En caso de que el usuario ya exista, debo crearlos con una alternativa(Me explico mas abajo.)
El formato de archivo de texto es el siguiente

mariano:zunino:jeje
santiago:noble:jeje
.
.
.

Los usuarios deberan crearse con el formato [PRIMERA LETRA DEL NOMBRE + APELLIDO], en el primer caso "mzunino" y si existe ese usuario, dar una alternativa como "mzunino1", "mzunino2", etc.

Ahora el problema es el siguiente, pueod hacer todo, expeto dar las alternativas, lo intente pero me sale error, o no entra al IF.
Para que vean de que hablo, aqui el scrip en cuestion:

#!/bin/bash
if [ -d "/var/log/CreacionUsuarios"]; then
clear
else
mkdir /var/log/CreacionUsuarios
fi
clear
echo -----------------
echo \| CREAR USUARIOS \|
echo -----------------
echo "Ingrese la ruta (COMPLETA) del archivo:"
read archivo
if [ -f "$archivo" ] ; then #se fija si $archivo es un archivo.
lineas=`cat "$archivo" | wc -l` #cuenta las lineas del archivo.
lineas=`echo $lineas | cut -d" " -f1` #se asegura que wc solo devuelva un numero.
lineas=$[lineas+1]
i=1
while [ $i -lt $lineas ] #mientras que I sea menor que Lineas, sigue:
do

linea=`head -$i "$archivo" | tail -1`
#Corta la primer letra del nombre.
nombre_usuario=`echo $linea | cut -c1`
#corta el apellido.
apellido_usuario=`echo $linea | cut -d: -f2`
#Concatena en apellido con la primer letra del nombre.
nuevo_usuario=${nombre_usuario}${apellido_usuario}
existe=`grep ^"$nuevo_usuario:" /etc/passwd`
if [ -z $existe ];then
  useradd -c "$nombre_usuario $apellido_usuario" -m "$nuevo_usuario"
                  echo "$nuevo_usuario:$nuevo_usuario" | chpasswd
        else
     #Se redireccionan los usuarios no creados a el archivo log en la carpeta /var/log
             echo "el usuario $nuevo_usuario ya EXISTE! `date +%D\ %r`" >> /var/log/CreacionUsuarios/creacionusuarios.log
             echo "El usuario existe, desea que el script asgine un nombre automaticamente? [Y/n]"
   read ok
   #Si ok es igual a Y, entonces entra al while
   if [ $ok == "Y" ];then
      bandera=0   
     #Mientras bandera sea 0
<strong>             while [ $bandera == '0' ]
      do
var=1
   asd=`grep ^"${nuevo_usuario}${var}:" /etc/passwd`
#Si la busqueda del usuario concatenada con la variable, no es encontrada crea al usuario y asigna
                                        #un nuevo valor a la bandera para salir del while        
if [ -z $asd ];then
                 useradd -c "${nombre_usuario}${var} ${apellido_usuario}${var}" -m "${nuevo_usuario}${var}"
                 echo "${nuevo_usuario}${var}:${nuevo_usuario}${var}" | chpasswd
                    echo "El nombre sera ${nuevo_usuario}${var}"
                bandera=1
           var=$[var+1]
fi</strong>
done
    fi
          fi
i=$[i+1]
done

echo "Para ver posibles errores, vea el archivo log en /var/log/CreacionUsuarios/creacionusuarios.log"
sleep 3
else
echo "Error, eso no es un archivo"
fi

Queria agregar el error:

línea 47: [: mzunino1:x:1002:1002:m1: se esperaba un operador binario

Esto es en caso de que mzunino exista, crea mzunino1, pero no puedo volver a ejecutar el script para que cree mzunino2, por ejemplo.
Ah otro detalle, ejecuten el script con bash Nombredelarchivo. Sino no funciona :S

El problema es que no es correcta la linea (hay mas errores)

[ $ok == "Y" ]

Es para expresiones regulares es decir pregunta si Y esta contenida en $ok o al contrario no lo recuerdo, pero el valor que devuelve no es algo que pueda interpretar como falso con lo que la condicion siempre se cumple y entra (la explicación de esto puede no ser del todo cierta, hace tiempo que no toco bash

[ $ok = "Y" ]

Lo correcto es esto anterior.

con este script tonto se puede probar

#!/bin/bash
echo "Pulsa una tecla"
read ok
echo $ok
if [ $ok = "Y" ]; then
   echo "funciona"
else
   echo "no funciona"
fi

Gracias por la respuesta.
Igual ese no es el problema, si bien lo que dices es correcto, igual funciona. El problema es en el while:

while [ $bandera == '0' ]
      do
      var=1
      asd=`grep ^"${nuevo_usuario}${var}:" /etc/passwd`
      if [ -z $asd ];then
      useradd -c "${nombre_usuario}${var} ${apellido_usuario}${var}" -m "${nuevo_usuario}${var}"
      echo "${nuevo_usuario}${var}:${nuevo_usuario}${var}" | chpasswd
      echo "El nombre sera ${nuevo_usuario}${var}"
      bandera=1
      else
      var=$[var+1]
      fi
done

O sea, entra al while, hace el grep, busca el usuario alternativo, si no lo encunta deberia de crearlo y sumarle a bandera 1 para que salga del while, pero no lo hace. Y si lo encuntra deberia seguir en el while, pero sumando a la variable var, otro valor, para probar crearlo.
Si me puedes dar una ayuda te lo agradesco, este script debo entregarlo muy pronto.

Que si que el problema es que no puedes comparar correctamente con == debe ser como te lo digo y para mejor prueba el fragmento de ejemplo que te he puesto, ponlo con doble igual y con espacios y plantas una Y y cumple la condicion, hazme caso, el doble igual no es correcto, que hace exactamente con un ejemplo es decir buscas usuario patata, este existe y que hace el bucle según te funciona ahora.

Gracias denuevo por responder. Pues disculpame, no habia leido del todo bien tu ejemplo, creia haber visto otra vez == en tu ejemplo. A mi script cambiandole los "iguales" y otros detalles de unas variables ah quedado andando (habian unas variables mal ubicadas que hacian que entrara en un bucle infinito). Me encantaria postear mi script finalizado, pero no puedo por un simple motivo, si algun compañero de clase busca el script y lo utiliza, yo reprobaria porque se hizo copia. Les prometo que para la semana entrante, despues del viernes posteo el script, mientras tanto, coloco el post como solucionado. Gracias denuevo.

Me alegro que lo solucionaras, ya nos contarás la nota que te pusieron devil eyebrows

Pido encaresidamente si pueden editar o eliminar el post por completo, ya que muchos compañeros han empezado a buscar el script por internet, y si dan con el codigo que eh posteado perderia el curso. Se los agradeceria mucho
Saludos.
Pd: h intentado enviar PM, pero me dice que no puedo enviarles.

shocked

Eso es, y que el hilo no le sirva a nadie, nada más que a ti

Haberlo pensado antes de poner aquí tus deberes de clase.

Estoy por poner ese hilo en portada, por aquello de facilitar su búsqueda...

Les respondo a los ultimos dos que respondieron. Al primero, nunca dije que la solucon fuera solo para mi, es mas eh dicho que publicaria el scripot finalizado cuando pueda. Asi que porfavor evita decir incoherencias.
Y al segundo, sin palabras. Supongo que las nomras del for dicen claramente: Hacer lo que uno quiera.
Pensar que los tenia como "mis salvadores de problemas" ya que siempre eh podido usars sus tips con mi debian. Pero cuando se queiren poner a la represiva lo hacen muy bien. Igual son de gran estima. Suertes.
Pd: perdon si suena muy agresivo, no es la intencion.