en esta lección, veremos cómo podemos usar sentencias If-Then-Else en scripts de entorno Bash que escribimos. Las instrucciones If-Then-Else son una herramienta útil para proporcionar una forma de definir la ruta de acción de un script cuando se cumplen algunas condiciones., Veamos cuál es la sintaxis para las sentencias If-Then-Else:
then THEN-COMMANDS;
else ELSE-COMMANDS;
fi
en el comando anterior mostrado, si se encuentra que SOME-COMMANDS es true o su estado de retorno es 0, se ejecutarán los comandos THEN. Si este no es el caso, se ejecutan los comandos ELSE. En los comandos SOME -, generalmente hacemos alguna comparación de cadenas o comparación de valores en forma de enteros. También podemos hacer muchas operaciones que involucran archivos., Veamos algunos ejemplos de comandos primarios que se utilizan principalmente cuando se trabaja con condiciones basadas en archivos:
los comandos THEN Y ELSE pueden ser cualquier operación UNIX válida o cualquier programa ejecutable. Tenga en cuenta que los comandos then Y fi están separados por punto y coma, ya que se consideran elementos completamente separados de un script.
If-Then-Else ejemplo simple
comencemos nuestra lección con un ejemplo muy simple con declaraciones If-Then-Else.,
Aquí es un programa de ejemplo:
Si Ejemplo
Aquí está la salida nos vemos cuando se ejecuta el script:
Los valores son los mismos!
Using
usando argumentos de línea de comandos
También podemos usar argumentos de línea de comandos en nuestros scripts y usar el número de argumentos y los valores como condición en la instrucción IF que definimos. Primero definimos un archivo de texto con el siguiente contenido:
terminalish!
ahora, podemos escribir un script que encuentre si una palabra aparece en un archivo de texto o no. Vamos a definir la secuencia de comandos ahora:
grep $1 $2
si
echo «$1 no se encuentra en el archivo $2.»
else
echo » found 1 encontrado en el archivo file 2.»
fi
echo » Script completado.»
Este script es muy dinámico. Considera la palabra a buscar y el archivo a buscar desde la propia línea de comandos. Ahora, estamos listos para ejecutar nuestro script:
veremos una salida como:
amor encontrado en archivo Hola.txt.
Script completado.
comprobando el número de argumentos de la línea de comandos
dentro de una instrucción IF, podemos incluso comprobar cuántos argumentos de la línea de comandos se pasaron al comando para que podamos actuar sobre el mismo:
if
then
echo » Not enough arguments «
else
echo » Good job!,»
fi
vamos a ejecutar este script ahora, veremos la siguiente salida:
argumentos de la línea de comandos
sentencias If-Then-elif-Else
También podemos tener varias sentencias IF En mismo bloque para acotar la ruta de decisión que nuestro programa toma para ejecutar los comandos que definimos., Aquí está la sintaxis para definir múltiples sentencias IF en nuestros scripts:
then
RESULT-COMMANDS;
elif
ANOTHER-COMMANDS;
then
ANOTHER-RESULT-COMMANDS;
else
ALTERNATE-COMMANDS;
fi
sin embargo, esto parece bastante familiar y fácil de seguir también., Vamos a definir un ejemplo simple para establecer cómo funciona el árbol:
esto es lo que obtenemos con este comando:
If Then elif else example
usando mayúsculas y minúsculas
las instrucciones IF-ELSE son útiles cuando tienes una gran lista de opciones que necesita decidir. Pero en caso de que desee realizar una acción solo en unos pocos casos de coincidencia exacta con el resultado, también podemos usar sentencias CASE en scripts Bash., Su sintaxis se ve como:
El último caso con * actúa como el caso predeterminado y se ejecutará cuando ninguno de los casos definidos anteriormente se encuentre coincidente.
construyamos rápidamente un ejemplo simple usando las sentencias CASE:
1)
echo «Value is 1.»
;;
2)
echo » valor es 2.»
;;
3)
echo » valor es 3.»
«;;
*)
echo «Otro valor pasado.»
ESAC
cada sentencia CASE termina con;; (marcas de punto y coma dobles)., Esto es lo que obtenemos con este comando:
Ejemplo de caso
conclusión
en esta lección, vimos cómo podemos usar las sentencias IF-ELSE, IF-THEN-Elif y CASE en los scripts Bash que definimos para tomar acciones específicas sobre la base de valores que existen en nuestros programas o pasados por el usuario utilizando parámetros posicionales.