Cómo dominar la lógica condicional en Bash

Como Dominar La Logica Condicional En Bash



El uso de lógica condicional es una parte muy esencial de cualquier lenguaje de programación. La lógica condicional se puede implementar en Bash de diferentes formas para resolver los problemas de programación. En este tutorial se muestran los métodos de uso de la lógica condicional en Bash a través de los diferentes tipos de declaraciones “if” y “case” para comparar la cadena y los valores numéricos, verificar el contenido de la variable, verificar la existencia del archivo o directorio, etc. .

Lista de contenido:

  1. Uso de la declaración 'Si'
  2. Uso de la declaración 'If-Else'
  3. Uso de la declaración 'If-Elif-Else'
  4. Uso de la declaración 'If' para verificar una variable vacía
  5. Uso de la declaración 'If' con operador lógico
  6. Uso de las declaraciones 'If' anidadas
  7. Uso de la declaración 'If' para verificar la existencia del archivo
  8. Uso de la declaración 'If' para verificar la existencia del directorio
  9. Uso de la declaración 'If' con Regex
  10. 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:



  p1





Ve arriba

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:

  p2-1

El siguiente resultado aparece después de ejecutar el script anterior si se toma 'azul' como entrada:

  p2-2

Ve arriba

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:

  p3-1

El siguiente resultado aparece después de ejecutar el script con el valor de 9078:

  p3-2

Ve arriba

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:

  p4-1

El siguiente resultado aparece después de ejecutar el script si no se toma ningún valor de entrada:

  p4-2

Ve arriba

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':

  p5-1

El siguiente resultado aparece después de ejecutar el script con el valor de entrada de 'BBA-56':

  p5-2

 

Ve arriba

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:

  p6-1

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':

  p6-2

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':

  p6-3

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':

  p6-4

Ve arriba

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:

  p7-1

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:

  p7-2

Ve arriba

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:

  p8-1

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:

  p8-2

Ve arriba

 

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:

  p9-1

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:

  p9-2

Ve arriba

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:

  p10-1

El siguiente resultado aparece después de ejecutar el script con el valor 09:


  p10-2

El siguiente resultado aparece después de ejecutar el script con el valor de 14:

  p10-3

Ve arriba

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.