Estructuras condicionales en ShellScript

Hola a todos, hoy os voy a explicar como usar las estructuras condicionales en Shellscript.

Las estructuras condicionales son fundamentales en el mundo de la programación y en shellscript no podría ser menos.

Se utilizan para ejecutar acciones cuando la condición es verdadera u otra cuando no se ejecuta.

If básico

Es el if más básico que que veremos, consta de una condición que cuando se cumple ejecuta un trozo de código.

Veamos la sintaxis:

#!/bin/bash

if [ <condicion> ]
then
   <codigo>
fi

Vemos un típico ejemplo:

#!/bin/bash

value1=5
value2=10

if [ $value1 -gt $value2 ]
then
        echo "$value1 es mayor que $value2"
fi

Entre los corchetes ponemos la condición que queramos, -gt es >, pero tenemos mas:

OperadorSímbolo
-gt> (mayor que)
-ge>= (mayor o igual que)
-lt< (menor que)
-le<= (menor o igual que)
-eq= (igual)
-ne!= (distinto)

Para cadenas o Strings, tenemos algunos operadores más:

OperadorEquivalencia
-n STRINGLa longitud del string es mayor que cero
-z STRINGLa longitud del string es cero.
STRING1 = STRING2STRING1 es igual al STRING2
STRING1 != STRING2STRING1 no es igual al STRING2

Si metemos un fichero en la condición, tenemos estos operadores:

OperadorEquivalencia
-d FICHEROEl fichero existe y es un directorio.
-f FICHEROEl fichero existe y es un fichero.
-e FICHEROEl fichero existe.
-r FICHEROEl fichero existe y tiene permisos de lectura.
-w FICHEROEl fichero existe y tiene permisos de escritura.
-x FICHEROEl fichero existe y tiene permisos de ejecucción.
-s FICHEROEl fichero existe y no esta vacio.

If else

Es igual que el anterior pero añadiendo cuando la condición es falsa que se ejecute un código.

Veamos la sintaxis:

#!/bin/bash

if [ <condicion> ]
then
   <codigo>
else
   <codigo>
fi

Veamos el ejemplo anterior con un else, por ejemplo:


#!/bin/bash

value1=5
value2=10

if [ $value1 -gt $value2 ]
then
        echo "$value1 es mayor que $value2"
else
        echo "$value2 es mayor que $value1"
fi

If elif else

Si queremos varias condiciones encadenadas, podemos usar elif, es como un «sino si».

Veamos la sintaxis:

#!/bin/bash

if [ <condicion> ]
then
   <codigo>
elif [ <condicion> ]
   <codigo>
else
   <codigo>
fi

Veamos un ejemplo adaptando el ejemplo anterior.

#!/bin/bash

value1=5
value2=10

if [ $value1 -eq $value2 ]
then
        echo "$value1 es igual a $value2"
elif [ $value1 -gt $value2 ]
then
        echo "$value1 es mayor que $value2"
else
        echo "$value2 es mayor que $value1"
fi

Case Statements

Case sirve para que en lugar de condiciones, se usan casos, por ejemplo, si valor1 es 1, 2, 3, 4, 5, etc.

Veamos la sintaxis:

case <variable> in
<caso 1>)
<codigo>
;;
<caso 2>)
<codigo>
;;
esac

Veamos un ejemplo:

#!/bin/bash

value1=3

case $value1 in
1)
echo "La variable tiene el valor 1"
;;
2)
echo "La variable tiene el valor 2"
;;
3)
echo "La variable tiene el valor 3"
;;
*)
echo "$value1 no esta entre 1-3"
;;
esac


Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *