Sentencias condicionales: Hay un total de 5 sentencias condicionales que se pueden utilizar en la programación bash
- declaración if
- declaración if-else
- declaración if..elif..else..fi (escalera Else If)
- si..then..else..if..then..fi..fi..(Nested if)
- switch statement
Su descripción con sintaxis es la siguiente:
if statement
Este bloque procesará si la condición especificada es verdadera.
Sintaxis:
if then statementfi
Declaración if-else
Si la condición especificada no es verdadera en la parte if entonces se ejecutará la parte else.
Sintaxis
if then statement1else statement2fi
Estado if..elif..else..fi (escalera Else If)
Para usar múltiples condiciones en un bloque if-else, entonces se usa la palabra clave elif en el shell. Si la expresión1 es verdadera entonces se ejecuta la declaración 1 y 2, y este proceso continúa. Si ninguna de las condiciones es verdadera entonces se procesa la parte else.
Sintaxis
if then statement1 statement2 . .elif then statement3 statement4 . .else statement5fi
if..then..else..if..then..fi..fi..(Nested if)
El bloque if-else anidado se puede utilizar cuando, una condición se satisface entonces se comprueba de nuevo otra condición. En la sintaxis, si la expresión1 es falsa entonces se procesa la parte else, y de nuevo se comprueba la expresión2.
Sintaxis:
if then statement1 statement2 .else if then statement3 . fifi
La sentencia switch
case funciona como una sentencia switch si el valor especificado coincide con el patrón entonces se ejecutará un bloque de ese patrón particular
Cuando se encuentra una coincidencia se ejecutan todas las sentencias asociadas hasta el doble punto y coma (;;).
Un caso terminará cuando se ejecute el último comando.
Si no hay ninguna coincidencia, el estado de salida del caso es cero.
Sintaxis:
case in Pattern 1) Statement 1;; Pattern n) Statement n;;esac
Programas de ejemplo
Ejemplo 1:
Implementación de la sentencia if
#Initializing two variables
a=10
b=20
#Check whether they are equal
if
then
echo
"a is equal to b"
fi
#Check whether they are not equal
if
then
echo
"a is not equal to b"
fi
$bash -f main.sha is not equal to b
Ejemplo 2:
Implementación de la sentencia if.else
#Initializing two variables
a=20
b=20
if
then
#If they are equal then
print
this
echo
"a is equal to b"
else
#
else
print
this
echo
"a is not equal to b"
fi
$bash -f main.sha is equal to b
Ejemplo 3:
Implementación de la sentencia switch
CARS=
"bmw"
#Pass the variable in string
case
"$CARS"
in
#
case
1
"mercedes"
)
echo
"Headquarters - Affalterbach, Germany"
;;
#
case
2
"audi"
)
echo
"Headquarters - Ingolstadt, Germany"
;;
#
case
3
"bmw"
)
echo
"Headquarters - Chennai, Tamil Nadu, India"
;;
esac
Salida
$bash -f main.shHeadquarters - Chennai, Tamil Nadu, India.
Nota: Los scripts de shell son un lenguaje que distingue entre mayúsculas y minúsculas, lo que significa que hay que seguir la sintaxis adecuada al escribir los scripts.