EJERCICIO 3 (3.5 puntos) Tiempo estimado: 50 min. #!/bin/bash
Transcripción
EJERCICIO 3 (3.5 puntos) Tiempo estimado: 50 min. #!/bin/bash
EJERCICIO 3 (3.5 puntos) Tiempo estimado: 50 min. Eres el administrador de un sistema Linux en un centro educativo y debes desarrollar un script en lenguaje BASH para la obtención de notas de una asignatura. El script se llama notas.sh y debe tener doble funcionalidad y, por tanto, dos formas alternativas de llamada. Los dos formatos de llamada son: notas.sh construir <fic-datos-alumno> <fic-notas> notas.sh nota <num-matricula> El primer parámetro del script identificará la acción concreta del script y tendrá el valor “construir” cuando se quiera generar el fichero de notas o “nota” cuando se quiera solicitar la nota de un alumno. Cuando el primer parámetro del script sea “construir”, el script deberá generar el fichero de notas /admin/listado con información procedente de los dos ficheros pasados como parámetros 2 y 3. Puede suponerse que el directorio /admin ya existe. Los tres ficheros implicados (datos del alumno, notas y listado a generar) tienen una línea por cada alumno. Sus formatos son los siguientes: Fic-datos-alumno: num-matricula:dni:nombre-y-apellidos:otra-información Fic-notas: num-matricula:nota /admin/listado: num-matricula:nombre-y-apellidos:nota Cuando el primer parámetro sea “nota”, el script deberá comprobar si el fichero con el listado de notas existe (se ha generado ya), y si es así, obtendrá la nota solicitada y escribirá un mensaje por la salida estándar diciendo “La nota solicitada es <nota>”. NOTA IMPORTANTE: En la implementación debes utilizar dos funciones (generar_fic_notas y obtener_nota), una para cada funcionalidad del script. A continuación se muestra el esquema del script que debes desarrollar: #!/bin/bash # Script notas.sh – gestión de notas # Variables globales (declara sólo las que necesites) # Función generar_fic_notas ($1 - fic_datos_alumno, $2 – fic_notas) # Genera listado de notas a partir de los ficheros de los parámetros # Función obtener_nota ($1 – num_matricula) # Muestra nota del alumno cuyo número de matrícula recibe como parám. # Programa principal