Continuando con nuestro tutorial anterior sobre matrices en scripts de shell , entendamos cómo podemos usar if-else en scripts de shell.
La programación condicional es una parte importante de cualquier lenguaje de programación porque ejecutar cada una de las declaraciones de nuestro programa es, en la mayoría de los casos, indeseable.
Necesitamos una forma de ejecutar sentencias de forma condicional. El if-else en los scripts de shell sirve para esta situación exacta.
Condiciones en los scripts de shell
Una de las partes más importantes de la programación condicional son las sentencias if-else. Una sentencia if-else permite ejecutar sentencias condicionales iterativas en el código.
Usamos if-else en scripts de shell cuando deseamos evaluar una condición y luego decidimos ejecutar un conjunto entre dos o más conjuntos de declaraciones utilizando el resultado.
Esto esencialmente nos permite elegir una respuesta al resultado que evalúa nuestra expresión condicional.
¿Cómo funciona if-else en los scripts de shell?
Ahora sabemos qué es una función if-else y por qué es importante para cualquier programador, independientemente de su dominio. Para comprender el if-else en los scripts de shell, debemos analizar el funcionamiento de la función condicional.
Echemos un vistazo a la sintaxis del bloque de condición if-else.
if [condition]then statement1else statement2fi
Aquí tenemos cuatro palabras clave, a saber, if, then, else y fi.
- La palabra clave if va seguida de una condición .
- Esta condición se evalúa para decidir qué declaración ejecutará el procesador.
- Si la condición se evalúa como VERDADERA, el procesador ejecutará la(s) instrucción(es) seguida(s) de la palabra clave then . En la sintaxis, se menciona como statement1 .
- En el caso de que la condición se evalúe como FALSA, el procesador ejecutará la(s) instrucción(es) seguida(s) de la palabra clave else . Esto se denota como instrucción2 en la sintaxis de la función.
Es importante tener en cuenta que, al igual que la programación en C, los scripts de shell distinguen entre mayúsculas y minúsculas. Por lo tanto, debes tener cuidado al usar palabras clave en tu código.
Cómo utilizar if-else en un script de shell
Es fácil ver la sintaxis de una función y creer que sabes cómo usarla, pero siempre es mejor entender una función a través de ejemplos, ya que ayudan a entender el papel que desempeñan los diferentes aspectos de una función.
A continuación se muestran algunos ejemplos útiles de if-else en scripts de shell para darle una mejor idea de cómo utilizar esta herramienta.
| Dominio | Descripción |
| Y lógico | |
| $0 | Argumento 0, es decir, el comando que se utiliza para ejecutar el script. |
| $1 | Primer argumento (cambie el número para acceder a más argumentos) |
| -ecuación | Control de igualdad |
| -nordeste | Comprobación de desigualdad |
| -es | Menos que |
| -el | Menor o igual que |
| -gt | Más que |
| -ge | Mayor que o igual |
1. Uso de if-else para comprobar si dos números son iguales
Para entender el funcionamiento de una función como if-else en un script de shell, es bueno empezar por lo simple. Aquí, inicializamos dos variables a y b, luego usamos la función if-else para verificar si las dos variables son iguales. El script bash debería verse como sigue para esta tarea.
#!/bin/bashm=1n=2if [ $n -eq $m ]then echo "Both variables are the same"else echo "Both variables are different"fi
Producción:
Both variables are different
2. Uso de if-else para comparar dos valores
El uso más común de if-else en scripts de shell es para comparar dos valores. Comparar una variable con otra variable o con un valor fijo ayuda a que todo tipo de programadores la utilicen en distintos casos.
Para este ejemplo, inicializaremos dos variables y usaremos la función if-else para encontrar la variable que es mayor que la otra.
#!/bin/basha=2b=7if [ $a -ge $b ]then echo "The variable 'a' is greater than the variable 'b'."else echo "The variable 'b' is greater than the variable 'a'."fi
Producción:
The variable 'b' is greater than the variable 'a'.
3. Usar if-else para comprobar si un número es par
A veces nos encontramos con situaciones en las que necesitamos trabajar con números pares e impares y diferenciarlos. Esto se puede hacer con if-else en scripts de shell si recurrimos a la ayuda del operador módulo.
El operador módulo divide un número con un divisor y devuelve el resto.
Como sabemos que todos los números pares son múltiplos de 2, podemos usar el siguiente script de shell para verificar si un número es par o impar.
#!/bin/bashn=10if [ $((n%2))==0 ]then echo "The number is even."else echo "The number is odd."fi
Producción:
The number is even
Como puede ver, hemos encerrado una parte de la condición entre corchetes dobles. Esto se debe a que necesitamos que se realice la operación de módulo antes de verificar la condición.
Además, encerrar entre corchetes dobles ejecuta sentencias en estilo C, lo que le permite procesar algunos comandos de estilo C dentro de scripts bash.
4. Uso de if-else como una solicitud de contraseña simple
La función if-else es conocida por su versatilidad y rango de aplicación. En este ejemplo, utilizaremos if-else en un script de shell para crear la interfaz para una solicitud de contraseña.
Para ello, pediremos al usuario que introduzca la contraseña y la almacenaremos en la variable pass.
Si coincide con la contraseña predefinida, que es “contraseña” en este ejemplo, el usuario obtendrá el resultado “La contraseña es correcta”.
De lo contrario, el script de shell le dirá al usuario que la contraseña es incorrecta y le pedirá que lo intente nuevamente.
#!/bin/bashecho "Enter password"read passif [ $pass="password" ]then echo "The password is correct."else echo "The password is incorrect, try again."fi
Conclusión
La función if-else en un script de shell es un recurso importante para los programadores de shell. Es la mejor herramienta que se puede utilizar cuando se necesita ejecutar un conjunto de instrucciones en función de condiciones predefinidas.
El bloque if-else es una parte esencial de la programación condicional, si no la más importante. Al regular la ejecución de instrucciones específicas, no solo hace que su código sea más eficiente, sino que también libera el valioso tiempo que el procesador podría haber desperdiciado ejecutando instrucciones innecesarias para un caso específico.
Esperamos que este tutorial te haya ayudado a entender cómo usar la función if-else. Si tienes alguna pregunta, comentario o sugerencia, no dudes en escribirnos en los comentarios a continuación.