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

Entradas populares de este blog

Componentes y Ventanas de Java Swing

Creación de Webservice SOAP básico

Fichero standalone del Servidor JBoss EAP