- Uso de la declaración 'Si'
- Uso de la declaración 'If-Else'
- Uso de la declaración 'If-Elif-Else'
- Uso de la declaración 'If' para verificar una variable vacía
- Uso de la declaración 'If' con operador lógico
- Uso de las declaraciones 'If' anidadas
- Uso de la declaración 'If' para verificar la existencia del archivo
- Uso de la declaración 'If' para verificar la existencia del directorio
- Uso de la declaración 'If' con Regex
- Uso de la declaración de “caso”
Uso de la declaración 'Si'
Este ejemplo muestra el uso simple de la declaración 'if' en Bash. Se pueden utilizar seis tipos de operadores de comparación para comparar los valores numéricos en Bash. Estos son “-eq” (igual), “-ne” (no igual), “-le” (menor que igual), “-ge” (mayor que igual), “-lt” (menor que) y “ -gt” (mayor que). Los usos de '-lt' y '-eq' se muestran en el siguiente script, ya sea que el número sea menor que 99 o no se haya verificado usando el operador '-lt'. El número es par o impar y lo verifica el operador “-eq”.
#!/bin/bash
#Asignar un valor numérico
( ( número = 50 ) )
#Verifique el valor numérico usando la declaración 'if'
si [ $número -lt 99 ]
entonces
eco 'El número es válido'.
ser
#Comprueba si el número es par o no.
si [ $ ( ( $número % 2 ) ) -eq 0 ]
entonces
eco 'El número es par'.
ser
Producción :
El siguiente resultado aparece después de ejecutar el script anterior:
Uso de la declaración 'If-Else'
El uso de la declaración 'if-else' se muestra en el siguiente script. Se toma un valor de cadena del usuario y se verifica si el valor es 'AZUL' o no utilizando la declaración 'if-else'.
#!/bin/bash
#Tomar un valor de cadena del usuario
leer -pag 'Ingresa tu color favorito:' color
#Verifique el valor de la cadena usando la declaración 'if-else'
si [ ${color^^} == 'AZUL' ]
entonces
eco 'Bien, el color azul está disponible'.
demás
eco ' $color no está disponible.'
ser
Producción :
El siguiente resultado aparece después de ejecutar el script anterior si se toma 'rojo' como entrada:
El siguiente resultado aparece después de ejecutar el script anterior si se toma 'azul' como entrada:
Uso de la declaración 'If-Elif-Else'
El uso de la declaración 'if-elif-else' se muestra en el siguiente script. Se toma un número del usuario y se verifica con los diferentes valores hasta que se encuentra alguna coincidencia. Si se encuentra alguna coincidencia, se imprime el mensaje correspondiente. Si no se encuentra ninguna coincidencia, se imprime el mensaje predeterminado.
#!/bin/bash#Tomar el valor de identificación del usuario.
leer -pag 'Ingrese su numero de serie:' de serie
#Verifique el valor de entrada usando la declaración 'if-elif-else'
si [ $serie == '4523' ]
entonces
eco 'Estás seleccionado en el grupo A'.
elif [ $serie == '8723' ]
entonces
eco 'Estás seleccionado en el grupo B.'
elif [ $serie == '3412' ]
entonces
eco 'Estás seleccionado en el grupo C.'
demás
eco 'No estás seleccionado' .
ser
Producción:
El siguiente resultado aparece después de ejecutar el script con el valor de 8723:
El siguiente resultado aparece después de ejecutar el script con el valor de 9078:
Uso de la declaración 'If' para verificar una variable vacía
El método para comprobar si una variable está vacía sin utilizar una declaración 'if' se muestra en el siguiente script. La opción '-z' se utiliza en la declaración 'if' para realizar esta tarea.
#!/bin/bash#Tomar el valor de identificación del usuario.
leer -pag 'Ingrese su numero de serie:' de serie
#Comprueba si la variable está vacía o no.
si [ ! -Con $serie ]
entonces
#Verifique el valor de entrada usando la declaración 'if-elif-else'
si [ $serie == '690' ]
entonces
eco 'Estás seleccionado en el equipo-1'.
elif [ $serie == '450' ]
entonces
eco 'Estás seleccionado en el equipo-2'.
demás
eco 'No estás seleccionado' .
ser
demás
eco 'No se proporciona ningún número de serie'.
ser
Producción :
El siguiente resultado aparece después de ejecutar el script con el valor 690:
El siguiente resultado aparece después de ejecutar el script si no se toma ningún valor de entrada:
Uso de la declaración 'If' con operadores lógicos
Se pueden utilizar tres tipos de operadores lógicos en la declaración condicional de Bash. Estos son lógicos OR (||), lógicos AND (&&) y lógicos NOT (!). Se toma un valor de código del usuario. Si el valor de entrada no está vacío, el valor se verifica con dos valores de código usando OR lógico. Si el valor coincide con algún código, se imprime el mensaje correspondiente. Si no se encuentra ningún código coincidente, se imprime el mensaje predeterminado.
#!/bin/bash#Tomar el código del curso del usuario.
leer -pag 'Ingrese el código del curso:' código
#Comprueba si la variable está vacía o no.
si [ ! -Con $código ]
entonces
#Verifique el valor de entrada usando la declaración 'if-elif-else'
si [ [ $código == 'CSE-106' || $código == 'CSE-108' ] ]
entonces
eco 'Curso de EIS.'
elif [ [ $código == 'BBA-203' || $código == 'BBA-202' ] ]
entonces
eco 'Curso de BBA'.
demás
eco 'Código de curso no válido'.
ser
demás
eco 'No se proporciona ningún código de curso'.
ser
Producción :
El siguiente resultado aparece después de ejecutar el script con el valor de entrada 'CSE-108':
El siguiente resultado aparece después de ejecutar el script con el valor de entrada de 'BBA-56':
Uso de las declaraciones 'If' anidadas
Cuando se utiliza una condición 'si' dentro de otra condición 'si', se denomina declaración 'si' anidada. El método para utilizar el 'si' anidado se muestra en el siguiente script. Se toman dos valores de marca del usuario. Si los valores de entrada no están vacíos, la primera condición 'si' verifica si el valor de '$theory' es mayor o igual a 60 o no. Si la primera condición 'si' devuelve 'verdadero', la segunda condición 'si' verifica si el valor de '$lab' es mayor o igual a 50 o no. Si la segunda condición 'si' también devuelve 'verdadero', se imprime un mensaje de éxito. De lo contrario, se imprime un mensaje de error.
#!/bin/bash#Toma la nota de teoría
leer -pag 'Ingrese la nota de teoría:' teoría
#Toma la marca de laboratorio
leer -pag 'Ingrese la marca de laboratorio:' laboratorio
#Comprueba si las variables están vacías o no.
si [ [ ! -Con $teoría && ! -Con $laboratorio ] ]
entonces
#Verifique los valores de entrada usando una declaración 'if' anidada
si [ $teoría -ge 60 ]
entonces
si [ $laboratorio -ge 50 ]
entonces
eco 'Has pasado.'
demás
eco 'Fallaste.'
ser
demás
eco 'Fallaste.'
ser
demás
eco 'La nota de teoría o laboratorio está vacía'.
ser
Producción :
El siguiente resultado aparece si ambos o uno de los valores de entrada están vacíos:
El siguiente resultado aparece si se toman 78 como notas de teoría y 45 como notas de laboratorio. Aquí, la segunda condición 'si' devuelve 'falso':
El siguiente resultado aparece si se toman 67 como notas de teoría y 56 como notas de laboratorio. Aquí, ambas condiciones 'si' devuelven 'verdadero':
El siguiente resultado aparece si se toman 50 como notas de teoría y 80 como notas de laboratorio. Aquí, la primera condición 'si' devuelve 'falso':
Uso de la declaración 'If' para verificar la existencia del archivo
El script bash puede comprobar la existencia del archivo de dos formas. Uno está utilizando el operador '-f' con corchetes '[]'. Otro es utilizar el comando 'prueba' y el operador '-f'. Se toma un nombre de archivo y se verifica la existencia del archivo usando la condición 'si' con el operador '-f'. Luego, se toma otro nombre de archivo y se verifica la existencia del archivo usando la declaración 'if' con el comando 'prueba' y el operador '-f'.
#!/bin/bash#Toma el nombre del archivo
leer -pag 'Ingrese un nombre de archivo:' fn1
#Comprueba si el archivo existe o no sin usar `test`
si [ -F $fn1 ]
entonces
eco ' $fn1 El archivo existe.'
demás
eco ' $fn1 el archivo no existe.'
ser
#Agregar nueva línea
eco
#Toma otro nombre de archivo
leer -pag 'Ingrese otro nombre de archivo:' fn2
#Comprueba si el archivo existe o no usando `test`
si prueba -F $fn2 ; entonces
eco ' $fn2 El archivo existe.'
#Comprueba si el archivo está vacío o no usando `test`
si prueba -Con $fn2 ; entonces
eco ' $fn2 El archivo está vacío.'
demás
eco ' $fn2 El archivo no está vacío.'
ser
demás
eco ' $fn2 el archivo no existe.'
ser
Producción :
El siguiente resultado aparece después de ejecutar el script tomando 'test.txt' y 'testing.txt' como nombres de archivo. Según el resultado, ambos archivos existen en la ubicación actual y el archivo 'testing.txt' está vacío:
El siguiente resultado aparece después de ejecutar el script tomando 'f1.txt' y 'test.txt' como nombres de archivo. Según el resultado, el archivo “f1.txt” no existe en la ubicación actual y el archivo “test.txt” no está vacío:
Uso de la declaración 'If' para verificar la existencia del directorio
El script Bash puede verificar la existencia del directorio de dos maneras, como el archivo. Uno está utilizando el operador '-d' con corchetes '[]'. Otro es usar el comando 'prueba' y el operador '-d'. Se toma un nombre de directorio y se verifica la existencia del directorio usando la condición 'si' con el operador '-d'. Luego, se toma otro nombre de directorio y se verifica la existencia del archivo usando la declaración 'if' con el comando 'prueba' y el operador '-d'.
#!/bin/bash#Tomar un nombre de directorio
leer -pag 'Ingrese un nombre de directorio:' tu 1
#Comprueba si el directorio existe o no sin usar `test`
si [ -d $dir1 ]
entonces
eco ' $dir1 El directorio existe.'
demás
eco ' $dir1 El directorio no existe.'
ser
#Agregar nueva línea
eco
#Tomar otro nombre de directorio
leer -pag 'Ingrese otro nombre de directorio:' directorio2
#Comprueba si el archivo existe o no usando `test`
si prueba -d $dir2
entonces
eco ' $dir2 El directorio existe.'
demás
eco ' $dir2 El directorio no existe.'
ser
Producción :
El siguiente resultado aparece después de ejecutar el script con los nombres de directorio 'temp' y 'files'. Según el resultado, ambos directorios existen en la ubicación actual. Luego, se ejecuta el comando “ls” para verificar el contenido de los directorios:
El siguiente resultado aparece después de ejecutar el script con los nombres de directorio 'testing' y 'new'. Según el resultado, ambos directorios no existen en la ubicación actual. Luego, el resultado del comando 'ls' muestra que ambos directorios no existen:
Uso de la declaración 'If' con Regex
El siguiente script muestra el método de validar los datos de entrada utilizando una declaración 'if' con la expresión regular. Aquí, se toman dos valores de entrada del usuario y se almacenan en las variables “$bookname” y “$bookprice”. La condición 'si' se utiliza en el script para comprobar que la variable '$bookname' contiene todos los caracteres alfabéticos y '$bookprice' contiene un número.
#!/bin/bash#Toma el nombre del libro y el precio del usuario.
eco -norte 'Ingrese el nombre del libro:'
leer nombre del libro
eco -norte 'Ingrese el precio del libro:'
leer precio del libro
#Comprueba que el nombre del libro contenga solo el alfabeto.
si ! [ [ ' $ nombre del libro ' =~ [ A-Za-z ] ] ] ; entonces
eco 'El nombre del libro no es válido'.
demás
eco 'El nombre del libro es válido'.
ser
#Verifique que el precio del libro contenga solo dígitos
si ! [ [ ' $precio del libro ' =~ [ 0 - 9 ] ] ] ; entonces
eco 'El precio del libro sólo puede contener dígitos'.
demás
eco 'El precio del libro es válido.'
ser
Producción :
El siguiente resultado aparece después de ejecutar el script con los valores de entrada de 'Programación Bash' como nombre del libro y 78 como precio del libro:
El siguiente resultado aparece después de ejecutar el script con los valores de entrada de 90 como nombre del libro y 'Bash' como precio del libro:
Uso de la declaración de “caso”
La declaración 'case' es la alternativa a la declaración 'if-elif-else', pero todas las tareas de la declaración 'if-elif-else' no se pueden realizar utilizando la declaración 'case'. El uso simple de la declaración 'caso' se muestra en el siguiente script. Se toma un valor numérico del usuario como valor del mes actual. Luego, se imprime el mes correspondiente si se encuentra algún valor coincidente en la declaración del 'caso'. De lo contrario, se imprime el mensaje predeterminado.
#!/bin/bash#Tome el valor del mes actual en número
leer -pag 'Ingrese el mes de hoy en número:' b_mes
#Imprima el texto antes de imprimir el nombre del mes.
eco -norte 'El nombre del mes actual es '
# Descubra e imprima el nombre del mes coincidente según la entrada
caso $b_mes en
1 | 01 ) eco 'Enero.' ;;
2 | 02 ) eco 'Febrero.' ;;
3 | 03 ) eco 'Marzo.' ;;
4 | 04 ) eco 'Abril.' ;;
5 | 05 ) eco 'Puede.' ;;
6 | 06 ) eco 'Junio.' ;;
7 | 07 ) eco 'Julio.' ;;
8 | 08 ) eco 'Agosto.' ;;
9 | 09 ) eco 'Septiembre.' ;;
10 ) eco 'Octubre.' ;;
11 ) eco 'Noviembre.' ;;
12 ) eco 'Diciembre.' ;;
* ) eco 'extraviado.' ;;
esac
Producción :
El siguiente resultado aparece después de ejecutar el script con el valor de 6:
El siguiente resultado aparece después de ejecutar el script con el valor 09:
El siguiente resultado aparece después de ejecutar el script con el valor de 14:
Conclusión
En los 10 ejemplos de este tutorial se muestran diferentes usos de la lógica condicional utilizando las declaraciones 'si' y 'caso'. El concepto de utilizar la lógica condicional en Bash quedará claro para los nuevos usuarios de Bash después de leer este tutorial.