Solución propuesta
Esta podría ser la estructura del programa

…

Ahora te toca a ti implementar las funciones que llevan a cabo cada una de las funciones de crear los recursos necesarios para un curso y añadir un nuevo alumno al curso.


Vamos a comenzar haciendo funciones que solo muestren información en pantalla para comprobar que realmente estamos tomando la información que necesitamos de manera correcta. Es decir, que tomamos el nombre del curso y recorremos los alumnos que nos pasan por parámetro.

Todo el código por ahora…

Probamos

Parece que funciona: controlamos errores, utilizamos los parámetros y se llaman a las funciones de forma correcta.
Ahora tenemos que crear la funcionalidad de cada función, valga la redundancia.

Podemos probar si funciona esta parte del script

Ahora nos centramos en la función nuevoAlumno que recibe por parámetro el nombre de un usuario del sistema.

Vamos a ver cómo funciona

El código completo sería el siguiente


Algunas mejoras
Podríamos realizar algunas acciones que podrían mejorar un poco el script:
- Si un alumno ya es miembro del grupo de un curso lo indicamos y no intentamos añadirlo. Habría que modificar levemente la función nuevoAlumno.
- Cuando termine la configuración del curso y de los alumnos, podemos mostrar un listado con los alumnos del curso. Habría que crear una nueva función, muestraMiembros que mostrara los miembros de un grupo pasado por parámetro o de la variable global curso. Esta función se llamaría al terminar el bucle for que añade los alumnos al curso.
Primera mejora

De esta forma, se mostrará un mensaje adaptado a cada caso: si no existe el usuario, si el usuario ya pertenece al grupo o si lo añadimos al grupo.

Mostrar los miembros del grupo
Hemos hecho una comprobación en el elif dónde obteníamos los miembros del grupo. Podemos aprovechar ese comando para mostrar los miembros del grupo $curso.

Vamos a probarlo

Para el próximo día….
Propuestas de mejora 2: the revenge of bash shell script
Si el usuario no existe nos gustaría tener la posibilidad de crear un nuevo alumno para el curso utilizando el script nuevoAlumno.sh que hemos creado en una actividad anterior.
La idea es que estos scripts estén o bien en /scripts o bien en su versión ejecutable en /usr/bin de forma que se puedan ejecutar en el sistema sin necesidad de escribir la ruta completa.
Si el usuario no existe en el sistema, preguntamos al operador si desea crear la cuenta de nuevo alumno, si la respuesta es que si, entonces creamos el nuevo alumno utilizando el script, si la respuesta es que no, continuamos con el siguiente usuario.
Solución propuesta
«Divide y venceras» estamos frente a una nueva funcionalidad que podemos afrontar de manera independiente. Es decir, nos olvidamos por un momento del resto de la funcionalidad del script. Ahora mismo, solo vamos a pensar en lo que nos piden que implementaremos dentro de una función.
«Si el usuario no existe en el sistema, preguntamos al operador si desea crear la cuenta de nuevo alumno, si la respuesta es que si, entonces creamos el nuevo alumno utilizando el script, si la respuesta es que no, continuamos con el siguiente usuario»
Este sería el script «independiente» que meteremos como parte de la función nuevoAlumno () en el script principal

Si nos fijamos, esta porción de comandos es independiente del resto del script. Estamos centrando nuestra atención en que esta funcionalidad funcione de forma correcta.
Si ahora este código lo tenemos en cuenta como parte de la función nuevoAlumno () quedaría así:

En la linea 42 al ejecutar el script nuevoAlumno.sh le pasamos dos parámetros, el nombre del alumno a crear y el del grupo del curso al que se añadirá. De esta forma, si creamos un nuevo alumno automáticamente lo añadimos al grupo del curso, igual que se hace en la línea 48 cuando el usuario ya existe.


Páginas: 12
Dejar una respuesta