Escribir un script de Bourne Again Shell (Bash) puede ser una experiencia gratificante, especialmente cuando le agregas lógica, asegurando su robustez. Una forma de incorporar esta lógica, haciendo que tu script sea más inteligente, es a través del uso de declaraciones condicionales, específicamente ‘bash if else’.
En esta inmersión profunda, estás a punto de comprender el poder y los matices de las declaraciones if-else y case de Bash. Esto te ayudará a crear scripts Bash libres de errores e inteligentes. También agregaremos algunas mejores prácticas para asegurarnos de que estés escribiendo scripts como un profesional.
¿Emocionado? ¡Sumérgete y eleva tu habilidad en el scripting de Bash!
Preparando el Escenario: Requisitos Previos
Para sacar el máximo provecho de este tutorial, hay algunas cosas esenciales que debes tener en cuenta:
- A Linux or Windows system armed with Bash. For those on Windows, the Windows Subsystem for Linux (WSL) is your best bet.
- A code/text editor to write and refine your ‘bash if else’ scripts.
¿Por qué Deberías Aprovechar las Declaraciones bash if else?
¿Por qué las declaraciones condicionales son tan veneradas en el scripting de Bash? Simplemente, otorgan a tus scripts capacidades de toma de decisiones basadas en condiciones predefinidas.
Por ejemplo, puedes emplear ‘bash if else’ para verificar si un archivo existe antes de intentar eliminarlo. Alternativamente, podrías querer verificar si un usuario posee los permisos necesarios antes de permitirles acceder a un recurso.
Infundir scripts con estructuras ‘bash if else’ no solo amplifica su flexibilidad sino también su potencia. Imagina un script diseñado para purgar todos los archivos en una carpeta. Utilizando ‘bash if else’, puedes eliminar quirúrgicamente solo aquellos archivos con más de 30 días de antigüedad, preservando el resto.
Sumergiéndonos en la declaración ‘bash if else’
Ahora, dejemos la introducción atrás y ensuciemos nuestras manos. Comenzaremos con una de las declaraciones condicionales más universalmente aceptadas: la declaración ‘bash if else’.
En su núcleo, el ‘bash if else’ es una puerta de entrada para insertar condicionales en tus scripts de Bash. Observa su sintaxis elegante a continuación:
- Comienza con la palabra clave if, seguida de las condiciones encapsuladas dentro de [[ ]]. A continuación, se ejecuta el código que reside dentro de la declaración ‘bash if else’, concluyendo con la palabra clave fi.
- La palabra clave then separa la condición de las acciones (o declaraciones) que se ejecutan cuando las condiciones se cumplen. Este bloque de acción puede abarcar varias líneas, separadas por puntos y comas (;).
Imagina la creación de un sistema de inicio de sesión. Solicita el nombre de usuario correcto antes de otorgar acceso:
1. Inicia tu terminal e inicia un nuevo archivo bash_if_demo.sh utilizando tu editor de texto preferido. Este será nuestro patio de recreo para entender las declaraciones ‘bash if else’.
2. Incruste el ejemplo de ‘bash if else’ proporcionado a continuación en su archivo bash_if_demo.sh. Una vez insertado, guarde las modificaciones y salga del editor.
El script de ejemplo ‘bash if else’ solicita un nombre de usuario. Si se ingresa el nombre de usuario esperado, se muestra un mensaje de bienvenida, complementado con la fecha y hora actual.
Mantener un registro de la fecha y hora de los intentos de acceso del usuario puede ser invaluable para análisis futuros.
La línea introductoria #!/bin/bash (comúnmente conocida como shebang) indica al sistema el intérprete a utilizar para procesar el código siguiente en el script. Aquí, ‘bash’ es nuestro intérprete elegido.
3. Ahora, pongamos a prueba nuestro script ‘bash if else’. Ejecute el siguiente comando:
Recuerde, independientemente de la variante de shell Bash que esté utilizando, prefije el nombre de su script con ‘bash’. Esto asegura que el sistema utilice Bash para la ejecución del script.
Ingrese “ATA” y presione Enter. El resultado debería parecerse al siguiente:

Si ingresa cualquier cosa que no sea “ATA”, el mensaje de bienvenida estará ausente en la salida. Solo se mostrará la fecha y hora actuales. Este comportamiento se debe a la declaración ‘bash if else’ que verifica una coincidencia precisa con el valor en la variable $NAME.
Tenga en cuenta que las declaraciones ‘bash if else’ son sensibles a mayúsculas y minúsculas. Por lo tanto, “ata”, “aTa”, “Ata”, y así sucesivamente, son distintos de “ATA”.

Pruebe consistentemente sus scripts ‘bash if else’ con entradas variadas. Esto asegura que los scripts funcionen como se espera.
Profundizando: Declaraciones ‘bash if else’ Anidadas
Ya ha comprendido los fundamentos de la elaboración de declaraciones ‘bash if else’. Si bien este conocimiento básico es suficiente para tareas sencillas, los scripts intrincados a menudo requieren construcciones avanzadas. Aquí es donde entran en juego las declaraciones ‘bash if else’ anidadas. Esencialmente, es una declaración ‘if’ que alberga una o varias declaraciones ‘if’ adicionales.
La estructura a continuación ilustra la sintaxis básica para las declaraciones ‘bash if else’ anidadas. Aquí, la cláusula externa if [[ condiciones ]]
engloba el código ejecutable solo cuando se cumple la condición. En nuestro contexto, el código anidado es otra declaración ‘if’.
if [[ condiciones ]]
– Esto representa la declaración externa de ‘bash if else’. El código anidado (otra declaración ‘if’) solo se ejecuta si la condición establecida es verdadera.if [[ condición2 ]]
– Esto representa la cláusula interna de ‘bash if else’. Contiene código que se ejecuta si y solo si ambas condiciones se cumplen.
Profundicemos. Mejorando nuestro ejemplo anterior de ‘bash if else’, ahora incluiremos una declaración if
que pregunte por una contraseña:
1. Primero, establece un nuevo archivo titulado bash_nested_if_demo.sh usando tu editor de texto favorito.
2. Transfiere el código ‘bash if else’ proporcionado a continuación al archivo bash_nested_if_demo.sh, guarda tus cambios y cierra el editor.
Este código ‘bash if else’ solicita tanto un nombre como una contraseña. Si las condiciones para el nombre y la contraseña coinciden, se muestra un mensaje particular. Si no hay coincidencia, la salida solo muestra la fecha y hora actuales.
3. Ahora, veamos este guion de ‘bash if else’ en acción. Ejecute el comando a continuación:
Para obtener resultados óptimos, ingrese ATA como el nombre de usuario y pwd123 como la contraseña.

Si sus entradas difieren de “ATA” o “pwd123”, el único comentario que recibirá será sobre la fecha y hora actuales. Esto se debe a que la estructura ‘bash if else’ requiere cumplir ambas condiciones.

Decodificación de las declaraciones ‘Bash If Else’
Las declaraciones ‘bash if else’ son fundamentales en la escritura de scripts de Bash, proporcionando capacidades decisivas para sus scripts. Sin embargo, es fundamental comprender que el uso de declaraciones ‘if’ no está exento de sus desventajas.
El desafío evidente es que la excesiva dependencia del ‘if’ puede desordenar tu código, haciéndolo tedioso y desafiante, especialmente cuando entran en juego múltiples declaraciones anidadas de ‘if’. Tales scripts corren el riesgo de convertirse en un “código espagueti”, caracterizado por una reducida legibilidad y una mayor complejidad.
Entonces, ¿cómo puedes simplificar tu script de ‘bash if else’ para que siga siendo comprensible? Opta por declaraciones ‘if else’ en lugar de una montaña de ‘if’ anidados. La palabra clave ‘else’ ofrece la conveniencia de especificar un bloque de código para ejecutar si la condición ‘if’ no se cumple.
Para tener una perspectiva más clara, considera la sintaxis para ‘Bash If Else’ a continuación, donde:
if [[ condiciones ]]
– Aquí, la declaración ‘bash if else’ incluye el código (declaración1
) que se activa solo cuando la condición especificada es válida.else
– Esto forma parte de la estructura ‘bash if else’. La declaraciónelse
abarca el código (declaración2
) que se ejecuta cuando la condición en la cláusulaif
precedente no se cumple.
Imagina crear un simple juego de ‘bash if else’ donde el sistema espera un número aleatorio del usuario:
1. Comienza por construir un nuevo archivo llamado bash_if_else_demo.sh.
2. Integra el siguiente código de ‘bash if else’ en tu archivo bash_if_else_demo.sh, guarda las modificaciones y luego sal.
El código de ‘bash if else’ subyacente solicita al usuario su número de la suerte. Si la entrada es par, muestra el mensaje ‘¡Ganaste!’. Por el contrario, un número impar activa la salida ‘¡Perdiste!’.
3. Para presenciar el funcionamiento del script ‘bash if else’, ejecuta el siguiente comando:
Al ingresar un dígito par, deberías ver el mensaje “¡Has ganado con ‘bash if else’!” Por otro lado, al ingresar un dígito impar, deberías obtener la retroalimentación “¡Has perdido usando ‘bash if else’!”

Para enriquecer el script ‘bash if else’, considera incorporar un segmento que determine si el usuario ingresa una letra o un carácter distinto en lugar de un número.
Decodificando las Sentencias ‘Bash If Else’ y ‘Case’
En este punto, has explorado un par de métodos para tomar decisiones en tus scripts de Bash, a saber, las sentencias ‘bash if else’. Pero Bash ofrece otra vía para la toma de decisiones: la sentencia case
.
Similar al ‘bash if else’, la sentencia case
es hábil para especificar secuencias de código a ejecutar basadas en condiciones especificadas. Una ventaja notable de la sentencia case es su concisión y claridad, especialmente cuando se compara con escenarios anidados de ‘bash if else’.
Para comprender completamente la alternativa de ‘bash if else’, profundicemos en la sintaxis de la declaración de caso:
case $VAR in
– Este segmento de la construcción de casos evalúa la variable$VAR
contra los patrones definidos hasta que se encuentre una coincidencia.patrón1)
ypatrón2)
– Estos son los criterios a probar, y una vez que se detecta una coincidencia, el código correspondiente (declaración1
odeclaración2
) entra en acción.esac
– Concluye la estructura de casos.
Imagina que estás diseñando un script de ‘bash if else’ donde los usuarios ingresan los nombres de sus países y, en respuesta, el script muestra el idioma predominante de ese país.
1. Comienza generando un archivo llamado bash_case_demo.sh.
2. Incorpora el código de ‘bash if else’ proporcionado a continuación en tu archivo bash_case_demo.sh, luego guarda y sale.
El script de ‘bash if else’ resultante solicitará al usuario el nombre de su país y, según los patrones del ‘case’, imprimirá el idioma principal hablado en el país mencionado.
3. Para experimentar este script ‘bash if else’ de primera mano, emplea el siguiente comando:
Notarás que el script destaca con precisión el idioma según el país elegido por el usuario.
Si el país proporcionado no corresponde con los patrones establecidos, se activa el patrón predeterminado (*), resultando en la salida “desconocido”.

Conclusión de las Declaraciones Condicionales en Bash
En esta guía, has emprendido el viaje de comprender las declaraciones ‘if else’ y otras declaraciones condicionales en Bash. Desde la simple declaración ‘if’ hasta las intrincadas declaraciones ‘if-else’ y ‘case’, ahora cuentas con herramientas esenciales para el scripting efectivo en Bash.
Con estos fundamentos de ‘bash if else’ en tu haber, puedes construir scripts de Bash de manera más eficiente, reduciendo el margen de errores.
Pero recuerda, esto es apenas la punta del iceberg. Bash ofrece una amplia gama de declaraciones condicionales. Tal vez, considera adentrarte en la declaración elif de Bash y los operadores &&, OR y || para obtener una comprensión más profunda. ¡Con dedicación, dominar la escritura de scripts en Bash pronto estará al alcance!