inicio

jul 9, 2013
|

Bash Scripting: Condicionales

En cualquier lenguaje de programación las estructuras condicionales nos permiten evaluar una expresión determinada y en función del resultado ejecutar un proceso u otro. Estas estructuras son básicas en cualquier lenguaje y por supuesto no podía faltar en bash.

Empezamos por la más básica y que sonará a cualquiera que sepa un poco de programación, la estructura if. Esta estructura evalúa una expresión, en caso de cumplirse ejecuta lo que contengamos dentro del if. En caso de querer ejecutar algo cuando no se cumple la expresión utilizamos el else para completar la estructura. La estructura sería algo así:

if [ expresión a evaluar ]; then
código a ejecutar
else
código a ejecutar
fi


Siguiendo con esto vamos a crear desde el terminal y con gedit un archivo llamado conditionals.sh. En el archivo escribimos el siguiente código:

 

#!/bin/bash
var1=1
var2=2
if [ $var1 = $var2 ]; then
 echo "$var1 y $var2 son iguales"
else
 echo "$var1 y $var2 son diferentes"
fi



En este ejemplo creamos dos variables y con ayuda de la estructura if sacamos por pantalla un mensaje diciendo si son iguales o no. Fijaos en la utilización de las variables, tanto en la expresión que las evalúa como en el echo. Si además modificáis las variables del ejemplo veréis como cambia en función de si son iguales o no.


El otro condicional que podemos utilizar es el comunmente llamado switch, el cual toma un valor y sobre una serie de ramas dadas decide sobre cual debe ir. En bash se utiliza con la palabra reservada case y su estructura sería así:

 

case expresión a evaluar in
resultado 1º)
código a ejecutar
;;
resultado 2º)
código a ejecutar
;;

resultado nº)
código a ejecutar
;;
esac


Veamos un ejemplo. Sobre el archivo conditionals.sh podéis escribir a continuación de lo que ya tenemos, lo siguiente:

 

var3=2

case $var1 in
$var2 )
echo "$var2 caso 1"
;;
$var3 )
echo "$var3 case 2"
;;
* )
echo "otro"
;;
esac


En este caso añadimos una tercera variable y evaluamos la primera con respecto al resto, en las dos ramas que tenemos, saldrá por la rama en la que coincida el valor de las variables. Además se añade al final un caso por si no coincide con ninguno de los valores marcada con un asterisco.

0
The following two tabs change content below.
Técnico en Administración de Sistemas y Desarrollo de Aplicaciones. Amigo de sus amigos, y una mente inquieta que no puede dejar un ordenador de lado porque necesita programar aplicaciones Android o aplicaciones en general, además de páginas web. Nuestro programador de cabecera y espero que también el vuestro.
  • jose manuel

    en un mismo if se pueden poner dos condiciones? por ejemplo, un número que este entre el 1 y el 10, como pongo dentro del mismo if las dos condificiones?

    echo “Introduce un numero entre el 1 y el 10″

    read num

    if [ $num -gt 0 && $num -lt 11 ];

    then

    echo “Muy bien”

    else echo “Mal hecho”

    fi

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR