Ejemplos de scripts con Shell Bash
Hoy vamos a revisar algunos ejemplos de las diferentes posibilidades que nos ofrecen los scripts desarrollados con el Shell Bash de Linux. Obviamente, no pretende ser un curso intensivo de scripting, más bien la idea del post de hoy es la de disponer de un repositorio con algunos ejemplos básicos que nos sirvan de inspiración a la hora de codificar soluciones más complejas.
Para ello, a continuación os iré mostrando algunos scripts en los que utilizaremos estructuras básicas de codificación tales como bucles for..do..done, operaciones aritméticas, escritura de ficheros, bucles while..do..done, controles if..else..fi, controles case..esac, etc... Vamos con ello.
1º) Script para Multiplicar dos números
En primer lugar, vamos con un script que nos sirve para realizar el producto de dos números introducidos por el usuario. El código sería el siguiente:
# --------------------------------------------------
#!/bin/bash
declare -i numero1
declare -i numero2
declare -i total
# Introducimos dos numeros y calculamos su producto
echo "Introduzca primer numero: "
read numero1
echo "Introduzca segundo numero: "
read numero2
total=$numero1*$numero2
echo "El producto de ambos es: " $total
exit 0
# --------------------------------------------------
Si ejecutamos el script anterior, la salida sería algo como lo siguiente:
2º) Script para Lanzar un bucle
A continuación, vamos a echarle un vistazo a un script que nos valdría para lanzar un bucle que va iterando desde 0 hasta 10, pero saltando números de 2 en 2. El código sería el siguiente:
# --------------------------------------------------
#!/bin/bash
# Lanzamos un bucle de 0 a 10 iterado de 2 en 2
for i in {0..10..2}
do
echo "Iteracion numero: $i "
done
exit 0
# --------------------------------------------------
Si ejecutamos el script anterior, la salida sería algo como lo siguiente:
3º) Script para Escribir en ficheros
El siguiente script nos permitirá escribir, con una única ejecución, una línea texto idéntica en una serie de ficheros diferentes. En nuestro ejemplo, los ficheros se denominarán fichero1, fichero2 y fichero3 y tendrán que estar creados previamente.
El código sería el siguiente:
# --------------------------------------------------
#!/bin/bash
# Incorporar fila adicional a los siguientes ficheros
for fn in fichero1 fichero2 fichero3
do
echo "Linea adicional" >> $fn
echo "Linea adicional incorporada en " $fn
done
exit 0
# --------------------------------------------------
Si ejecutamos el script anterior, la salida sería algo como lo siguiente:
Los ficheros denominados fichero1, fichero2 y fichero3 quedarán ahora con el texto "Linea adicional" incorporado en su contenido.
4º) Script para Establecer un contador
Este script nos permitirá establecer un contador en nuestro proceso y, de ese modo, tendremos la posibilidad de ir ejecutando la lógica que deseemos durante el número de iteraciones indicado. El código sería el siguiente:
# --------------------------------------------------
#!/bin/bash
declare -i cont
cont=10
# Lanzamos un contador desde 10 hacia atras
# Iteramos mientras sea mayor que 2
while [ $cont -gt 2 ]; do
echo El contador es $cont
cont=cont-1
done
exit 0
# --------------------------------------------------
La salida de la ejecución debería ser similar a lo siguiente:
5º) Script para ramificar lógica de ejecución
Con este script tendremos la posibilidad de ramificar la lógica de ejecución mediante el empleo del clásico if...else..fi. Si el proceso va por la rama "if", se ejecutará un determinado software y si el proceso se decanta por la rama "else", se ejecutará un código totalmente diferente. La implementación sería la siguiente:
# --------------------------------------------------
#!/bin/bash
echo "Indica tu color favorito: "
read texto1
echo "Indica el color favorito de tu pareja: "
read texto2
if test $texto1 != $texto2; then
echo "Los opuestos se atraen"
else
echo "Los dos pensais igual"
fi
exit 0
# --------------------------------------------------
La salida de la ejecución debería ser similar a lo siguiente:
6º) Script para tratar varias opciones diferentes
Siguiendo con la idea del script anterior, ahora vamos a ver otro código que nos permitirá ejecutar diferentes lógicas en función de la opción seleccionada por el usuario. Esta implementación nos vendrá muy bien siempre que tengamos tres o más opciones posibles. El código sería el siguiente:
# --------------------------------------------------
#!/bin/bash
# Introducimos el tiempo futuro
echo "Opciones: soleado, caluroso, nublado, fresco, lluvioso, frio "
echo "Este es el tiempo que hara mañana: "
read tiempo
# Escribimos un comentarios en funcion del tiempo previsto
case $tiempo in
soleado | caluroso ) echo "Me encanta el tiempo " $tiempo
;;
nublado | fresco ) echo "Bueno... el tiempo " $tiempo " esta bien"
;;
lluvioso | frio ) echo "El tiempo " $tiempo " es deprimente"
;;
* ) echo " No entiendo ese sistema de tiempo..."
;;
esac
exit 0
# --------------------------------------------------
La salida de la ejecución debería ser similar a lo siguiente:
Con la serie de scripts que acabamos de ver, ya deberíamos tener suficiente para empezar a codificar nuestros propios scripts básicos. Obviamente, nuestros primeros scripts no van a ser implementaciones complejas, pero sí que nos servirán para ir alcanzando la experiencia necesaria para desarrollar soluciones más elaboradas a la hora de trabajar con el Shell Bash de Linux.
Bueno, eso es todo por hoy. Como siempre, ya sabéis que las dudas que os surjan con respecto a este tema podéis dejármelas aquí abajo...
Saludos.
Comentarios
Publicar un comentario