1- Sentencias Condicionales – IF, ELIF y ELSE
Paso a paso de las sentencias condicionales en Bash: Las sentencias condicionales en Bash permiten evaluar condiciones y ejecutar comandos dependiendo de si esas condiciones se cumplen o no. Los ejem...
Paso a paso de las sentencias condicionales en Bash:
Las sentencias condicionales en Bash permiten evaluar condiciones y ejecutar comandos dependiendo de si esas condiciones se cumplen o no. Los ejemplos que mencionaste demuestran varios usos de estructuras condicionales. Aquí está el análisis paso a paso:
1. Condicional básica (if
)
fruta=naranja
if [ "$fruta" = "naranja" ]; then
echo "La variable fruta es igual a Naranja"
fi
Explicación:
-
Declaración de variable:
fruta=naranja
Se define la variable
fruta
con el valor"naranja"
. -
Inicio del bloque condicional:
if [ "$fruta" = "naranja" ]; then
if
: Indica el inicio de una evaluación condicional.[ "$fruta" = "naranja" ]
: Evalúa si el valor de la variablefruta
es igual a"naranja"
.- Los corchetes
[ ]
ejecutan un test. - El operador
=
compara cadenas.
- Los corchetes
"$fruta"
: Usa comillas dobles para manejar posibles valores con espacios.
-
Acción si la condición es verdadera:
echo "La variable fruta es igual a Naranja"
Si la condición se cumple, imprime el mensaje.
-
Cierre del bloque:
fi
Finaliza la estructura
if
.
2. Condicional if-elif
fruta=manzana
if [ "$fruta" = "naranja" ]; then
echo "La variable fruta es igual a Naranja"
elif [ "$fruta" = "manzana" ]; then
echo "La variable fruta es manzana"
fi
Explicación:
-
Primera condición:
if [ "$fruta" = "naranja" ]; then
Evalúa si
fruta
es igual a"naranja"
. Si es verdadera, ejecuta el bloque siguiente. De lo contrario, pasa al siguienteelif
. -
Segunda condición (
elif
):elif [ "$fruta" = "manzana" ]; then
elif
: Evalúa una nueva condición si la anterior es falsa.- Compara si
fruta
es"manzana"
.
-
Mensaje asociado:
echo "La variable fruta es manzana"
-
Finalización: La estructura concluye con
fi
.
3. Condicional if-elif-else
fruta=amanzana
if [ "$fruta" = "naranja" ]; then
echo "La variable fruta es igual a Naranja"
elif [ "$fruta" = "manzana" ]; then
echo "La variable fruta es manzana"
else
echo "No se detectó el patrón dentro de la variable fruta"
fi
Novedad aquí:
- Uso del bloque
else
:else
: Se ejecuta si ninguna condición previa se cumple.- En este caso, si
fruta
no es"naranja"
ni"manzana"
, se ejecutará el mensaje del bloqueelse
.
4. Entrada por el usuario (read
)
read -p "Introduce tu nombre: jeremy o manzana " nombre
if [ "$nombre" = "jeremy" ]; then
echo "Tu nombre es Jeremy"
elif [ "$nombre" = "manzana" ]; then
echo "El nombre que has puesto es manzana"
else
echo "El nombre que has puesto no es jeremy ni manzana"
fi
Explicación adicional:
-
Entrada dinámica:
read -p "Introduce tu nombre: jeremy o manzana " nombre
read
: Captura un valor ingresado por el usuario.-p
: Permite mostrar un mensaje antes de capturar el input.nombre
: Variable donde se guarda la entrada del usuario.
-
Condicionales: Se aplican las mismas reglas de
if-elif-else
.
5. Argumentos posicionales
nombre=$1
if [ "$nombre" = "jeremy" ]; then
echo "Tu nombre es Jeremy"
elif [ "$nombre" = "manzana" ]; then
echo "El nombre que has puesto es manzana"
else
echo "El nombre que has puesto no es jeremy ni manzana"
fi
Diferencias clave:
- Uso de
$1
:$1
: Representa el primer argumento proporcionado al script desde la línea de comandos.- Ejemplo: Si se ejecuta
./script.sh jeremy
, entonces$nombre
será"jeremy"
.
Resumen de elementos importantes:
-
Sintaxis básica:
if [ condición ]; then comandos elif [ condición ]; then comandos else comandos fi
-
Operadores comunes:
- Comparación de cadenas:
=
,!=
. - Comparación numérica:
-eq
,-ne
,-lt
,-le
,-gt
,-ge
.
- Comparación de cadenas:
-
Entrada dinámica:
read
para capturar datos del usuario.- Argumentos posicionales (
$1
,$2
, etc.).
-
Errores comunes:
- Olvidar los espacios en los corchetes:
[ "$variable" = "valor" ]
. - No usar comillas dobles, lo que puede causar problemas con valores vacíos o espacios.
- Olvidar los espacios en los corchetes:
Estos bloques condicionales son básicos pero fundamentales para automatizar tareas en scripts de Bash.