Aprende shell script con ejemplos (III)
Bueno, ya hemos visto los dos primeros post sobre shell script y vamos a profundizar en cosas ya vistas y otras nuevas.
1. Volviendo a las funciones
Ya vimos en un post anterior los fundamentos de las funciones. Las funciones no solo nos van a servir para hacer los programas más ordenados, sino para reusar el código o incluso hacer recursividad (aunque con shell script no es lo suyo).
Veamos ejemplos de un uso algo más avanzado sobre funciones:
Una característica fundamental de las funciones son los argumentos. Los argumentos nos sirven para parametrizar las funciones y que estas sean más genéricas.
A continuación se muestra un ejemplo de funciones con argumentos:
Si te das cuenta, la función mostrar admite un parámetro que es $1. Si se le quisiesen pasar dos parámetros serían $1 para el primero y $2 para el segundo (y así sucesivamente). Esta función de momento solamente muestra el parámetro por pantalla pero podría hacer muchas más cosas con él.
2. Argumentos pasados a un shell script.
Los argumentos son los parámetros que le pasamos a un comando para parametrizarlo. Por ejemplo, cuando tecleo ps -ef, el «-ef» son los parámetros que le paso a ps para que realice lo que yo quiero. También cuando ejecuto mv fichero.txt fichero2.txt, a mv le paso dos parámetros que son el nombre del fichero a renombrar y el nombre que queremos ponerle.
Dentro de un script podemos referenciar los argumentos pasados al mismo mediante las siguientes variables:
Para ver cómo funcionan los parámetros veamos un programa que comprueba si se le ha pasado al menos un parámetro:
Como puedes ver al principio del script compruebo con [ -z «$1» ] que al menos existe el primer parámetro y en caso contrario muestra los mensajes que ves y sale con el comando exit. De esa manera termina y no se sigue ejecutando el script.
El script anterior puede servirnos para crear un script algo más complejo como el siguiente:
Como puedes ver, he reutilizado el script anterior para hacer uno más completo. Este script establece unos directorios origen y destino del backup y un fichero (FICH) donde se va a realizar el backup el cual tiene como nombre backup- y la fecha en que se realizó.
3. Interacción con el usuario.
Los script por regla general no suelen ser muy interactivos pero en algunos casos como en los menús es necesario pedir al usuario que elija una opción, pedirle información, etc.
Esas lecturas interactivas con los usuarios las hacemos mediante la orden read. Veamos un ejemplo muy sencillo de script con una orden read:
#!/bin/bash echo Por favor, introduzca su nombre read NOMBRE echo " Hola $NOMBRE, ¿cómo estas? "
Incluso si quieres, puedes poner varias lecturas en una misma orden read:
#!/bin/bash echo Por favor, introduzca su nombre y apellido read NOMBRE APELLIDO echo " Hola $NOMBRE $APELLIDO, ¿cómo estas? "
Existe una forma de lectura de variables un poco más profesional y es meterle la opción -n.
echo -n «Introduzca un parámetro :»
read VAR
echo «El valor del parámetro es $VAR»
De esta manera lee el parámetro en la misma línea que escribe el texto y no en la siguiente.
Si te ha gustado este post o lo has encontrado interesante no dejes de continuar aprendiendo shell script en la cuarta entrega.
One thought on “Aprende shell script con ejemplos (III)”