lunes, 20 de enero de 2014

Un ejercicio interesante de Scripts


Hoy vamos a mostrar un ejemplo de un script simple que hemos aprendido en clase.

Este script pedirá el nombre, primer y segundo apellido, DNI, edad y fecha de nacimiento, añadiendo esta información al fichero “ayuda4.txt” con el siguiente formato:

DNI|apellido1|apellido2|nombre|edad|fecha_nacimiento

Nos piden realizar la petición de los datos del modo más compacto posible, es decir, utilizando el mínimo número de órdenes que se nos ocurra.

No debemos olvidar que tenemos que añadir comentarios a nuestro script para facilitar su lectura una vez completado y ver lo que hemos realizado en cada momento.

Además tenemos que comprobar si faltan los argumentos necesarios para ejecutar el script. 

Creamos el fichero “ejercicio4.sh” con el siguiente contenido:

#!/bin/bash
# Práctica Shell Scripts 3
# Ejercicio 4
# Emanuel Adrian Gabriel Stasiuc

if [ $# -eq 0 ]; then
        echo "Faltan argumentos, ejecute ayuda -h para más información."
        exit 1
fi

# Si pedimos ayuda mostramos lo siguiente

if [ "$1" = "-h" ]; then
    cat ayuda4.txt
    exit 0
fi

# Proceso

echo -n "Introduzca su nombre y apellidos, dni, fecha de nacimiento y edad:"
        read NOMBRE
        read APELLIDO1
        read APELLIDO2
        read DNI FECHANAC EDAD

echo "$NOMBRE|$APELLIDO1|$APELLIDO2|$DNI|$FECHANAC|$EDAD" >> $1

Como podemos observar, es un ejercicio de poca complejidad, pero hay que tener en cuenta algunos aspectos para su correcto funcionamiento.

Es importante tener en cuenta que existen nombres compuestos, como por ejemplo “Antonio Carlos” y apellidos compuestos como por ejemplo “Del Castillo”.

Solucionamos el problema posicionando las variables de nombre y apellidos compuestos en líneas separadas:

        read NOMBRE
        read APELLIDO1
        read APELLIDO2
        read DNI FECHANAC EDAD

Por lo tanto a la hora de leer las variables dentro de nuestro script, tenemos que tener cuidado para que los valores de cada variable se puedan almacenar en su respectiva variable.


No hay comentarios:

Publicar un comentario