El uso de estructuras condicionales es un pilar esencial de la programación, y los scripts de shell no son la excepción. La declaración if-else en shell scripting permite ejecutar un conjunto de instrucciones basadas en condiciones predefinidas. En este artículo, exploraremos cómo implementar la funcionalidad if-else en scripts de shell y veremos ejemplos prácticos.
Introducción a If-Else en Shell Scripting
La estructura if-else es clave para la programación condicional. Permite evaluar una condición y decidir entre ejecutar uno u otro conjunto de instrucciones. Este control evita la ejecución innecesaria de comandos y mejora la eficiencia de los scripts.
Sintaxis Básica de If-Else en Shell
if [ condición ]
then
# Instrucciones si la condición es verdadera
comando1
comando2
else
# Instrucciones si la condición es falsa
comando3
comando4
fi
Componentes Clave
if
: Evalúa una condición.then
: Contiene las instrucciones a ejecutar si la condición es verdadera.else
: Opcional; contiene las instrucciones a ejecutar si la condición es falsa.fi
: Marca el final del bloque condicional.
Ejemplos Prácticos de If-Else en Shell
1. Verificar si Dos Números son Iguales
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "Los números son iguales."
else
echo "Los números no son iguales."
fi
Resultado:
Los números no son iguales.
2. Comparar Dos Valores
#!/bin/bash
a=15
b=10
if [ $a -gt $b ]
then
echo "El valor de 'a' es mayor que el de 'b'."
else
echo "El valor de 'a' no es mayor que el de 'b'."
fi
Resultado:
El valor de 'a' es mayor que el de 'b'.
3. Verificar si un Número es Par o Impar
El operador modulus (%
) ayuda a verificar si un número es par o impar.
#!/bin/bash
echo "Introduce un número:"
read num
if (( $num % 2 == 0 ))
then
echo "El número $num es par."
else
echo "El número $num es impar."
fi
Resultado:
Introduce un número:
7
El número 7 es impar.
4. Implementar un Prompt de Contraseña
Un ejemplo típico es utilizar if-else para crear un sistema de validación de contraseñas.
#!/bin/bash
password="admin123"
echo "Introduce tu contraseña:"
read user_pass
if [ "$user_pass" == "$password" ]
then
echo "Contraseña correcta. Acceso concedido."
else
echo "Contraseña incorrecta. Intenta nuevamente."
fi
Resultado:
Introduce tu contraseña:
admin123
Contraseña correcta. Acceso concedido.
Operadores Comunes para If-Else
Operador | Descripción |
---|---|
-eq | Igual a |
-ne | No igual a |
-lt | Menor que |
-le | Menor o igual que |
-gt | Mayor que |
-ge | Mayor o igual que |
&& | AND lógico |
` |
Ejemplo Avanzado: Verificar un Archivo
Este script verifica si un archivo existe en el sistema.
#!/bin/bash
echo "Introduce el nombre del archivo:"
read archivo
if [ -e "$archivo" ]
then
echo "El archivo '$archivo' existe."
else
echo "El archivo '$archivo' no existe."
fi
Resultado:
Introduce el nombre del archivo:
test.txt
El archivo 'test.txt' no existe.
Conclusión
El bloque if-else es una herramienta indispensable en los scripts de shell. Proporciona flexibilidad para manejar diferentes escenarios y permite escribir scripts dinámicos y eficientes. Desde la validación de contraseñas hasta la verificación de condiciones de sistema, if-else es un componente esencial para cualquier desarrollador que utilice shell scripting.
Si deseas profundizar más, considera explorar variantes como elif, combinaciones lógicas, y el uso de bucles junto con condiciones para tareas más complejas.