Tipos de declaraciones condicionales
Los siguientes tipos de declaraciones condicionales se pueden usar en Bash.
Cada tipo de declaraciones se explica en este tutorial con un ejemplo.
Operadores condicionales
Muchos operadores condicionales se pueden usar en la declaración 'si' para hacer cualquier tarea condicional. Algunos operadores condicionales en su mayoría usados se mencionan a continuación.
Operador | Descripción |
-ecualización | Devuelve verdadero si dos números son equivalentes |
-teniente | Devuelve verdadero si un número es menor que otro número |
-GT | Devuelve verdadero si un número es mayor que otro número |
== | Devuelve verdadero si dos cadenas son equivalentes |
!= | Devuelve verdadero si dos cadenas no son equivalentes |
! | Devuelve verdadero si la expresión es falsa |
-d | Verifique la existencia de un directorio |
-mi | Verifique la existencia de un archivo |
-riñonal | Verifique la existencia de un archivo y lea el permiso |
-w | Verifique la existencia de un archivo y escriba permiso |
-X | Verifique la existencia de un archivo y ejecute permiso |
Uso de la declaración SIMPLE IF
Sintaxis:
if [condición]; entonces
Comando (s)
FI
Este ejemplo muestra el uso condicional único de la declaración if. Crear un archivo llamado 'cond1.sh 'y agregue el siguiente script. Este script tomará un valor numérico como entrada y verificará que el valor sea inferior a 100 o no mediante la condición. Si la condición es verdadera, entonces imprimirá un mensaje en la terminal.
cond1.mierda
#!/bin/bash
echo "Ingrese un número"
leer n
if [$ n -lt 100]; entonces
printf "$ n es menos de 100 \ n"
FI
Producción:
Ejecutar el guión.
$ bash cond1.mierda
Aquí, 87 se toma como entrada que es inferior a 100. Entonces, la salida es "87 es inferior a 100". No se imprime ninguna salida para la entrada superior a 100.
Cómo puede aplicar dos condiciones con la instrucción lógica y en 'si' se muestra en este ejemplo. Crear un archivo llamado 'cond2.mierda'Y agregue el siguiente script. Aquí, nombre de usuario y contraseña será tomado del usuario. A continuación, la declaración 'si' se usa para verificar el nombre de usuario es 'administración'Y la contraseña es'supervolador'. Si ambos valores coinciden, entonces la instrucción 'if' devolverá verdadero e imprima el mensaje "Iniciar sesión exitoso".
cond2.mierda
#!/bin/bash
echo "Ingrese el nombre de usuario"
leer la ONU
echo "Ingrese la contraseña"
Leer PW
if [["$ un" == "admin" && "$ pw" == "Superuser"]]; entonces
echo "Iniciar sesión exitoso."
FI
Producción:
Ejecutar el guión.
$ bash cond2.mierda
El script no imprimirá una salida para una entrada no válida e imprimirá el mensaje de éxito para una entrada válida.
Uso de la declaración if-else
Sintaxis:
if [condición]; entonces
Comando (s)
demás
Comando (s)
FI
Para ejecutar una declaración para la condición verdadera y otra declaración para la condición falsa, if-else La declaración se usa en este ejemplo. Crea un archivo llamado 'Cond3.mierda y agregue el siguiente script. Aquí, $ Nombre La variable se utiliza para tomar la entrada del usuario y el valor de $ Nombre se comparará con dos valores, 'Neha' y 'Nulo'. Si $ Nombre coincide con cualquiera de estos valores, entonces si la condición devolverá verdadero y la declaración de 'si' Parte se ejecutará. Si $ Nombre no coincide con ninguno de los valores, entonces si la condición devolverá falso y la declaración de 'demás' Parte se ejecutará.
cond3.mierda
#!/bin/bash
echo "Ingrese su nombre"
nombre de lectura
if [[$ name == "Neha" || $ name == 'nil']]; entonces
Echo "Has ganado el premio"
demás
Echo "intente por la próxima vez"
FI
Producción:
Ejecutar el guión.
$ bash cond3.mierda
La salida es, "Has ganado el premio" por entrada válida y "Intenta la próxima vez" para la entrada no válida.
Uso de la declaración if-elif-else
Sintaxis:
if [condición]; entonces
Comando (s)
Elif [condición]; entonces
Comando (s)
…
demás
Comando (s)
FI
Múltiples condiciones con múltiples declaraciones si se declaran en este ejemplo para imprimir la calificación en función de la marca de entrada. Crea un archivo llamado 'Cond4.mierda'Y agregue el siguiente script. Después de tomar el valor de $ Mark, La primera declaración 'si' probará el valor es mayor o igual a 90. Si devuelve verdadero, imprimirá "Grado - A+" de lo contrario irá a la segunda condición. El segundo 'si' probará el valor es inferior a 90 y mayor o igual a 80. Si devuelve verdadero, imprimirá "Grado - A" de lo contrario irá por la tercera condición. Si la tercera condición es verdadera, imprimirá "Grado - B+" de lo contrario ir a la cuarta condición. Si la cuarta condición es verdadera, entonces imprimirá "Grado - C+" y si devuelve falso, la declaración de la parte más se ejecutará que imprima, "Grado - F".
cond4.mierda
#!/bin/bash
echo "Ingrese la marca"
leer la marca
if (($ mark> = 90)); entonces
Echo "Grado - A+"
Elif (($ Mark < 90 && $mark >= 80)); entonces
Echo "Grado - A"
Elif (($ Mark < 80 && $mark >= 70)); entonces
Echo "Grado - B+"
Elif (($ Mark < 70 && $mark >= 60)); entonces
Echo "Grado - C+"
demás
Echo "Grado - F"
FI
Producción:
Ejecutar el guión.
$ bash cond4.mierda
El script se prueba por tres valores de marca. Estos son 95, 79 y 50. Según las condiciones utilizadas en el script, se imprime la siguiente salida.
Uso de anidados si
Sintaxis:
if [condición]; entonces
Comandos
if [condición]; entonces
Comandos
FI
FI
Este ejemplo muestra el uso de la declaración IF anidada que calculará la bonificación en función del monto de las ventas y la duración del tiempo. Crear un archivo llamado 'cond5.sh 'y agregue el siguiente código. Los valores de $ Cantidad y $ Duración se toman como entrada. A continuación, la primera declaración 'si' verificará la cantidad de $ es mayor o igual a 10000 o no. Si devuelve verdadero, verificará la condición de la declaración anidada. El valor de $ Duración se verifica por la declaración interna 'si'. Si $ Duración es menor o igual a 7, entonces el mensaje "obtendrá 20% de bolo" se almacenará; de lo contrario, el mensaje "obtendrá un bono del 15%" se almacenará en el $ salida variable. Si la primera condición 'if' devuelve falso, entonces las declaraciones de la parte más se ejecutarán. En la segunda condición 'si' anidada, el mensaje "obtendrá el 10% de bonificación" se imprimirá para devolver un valor verdadero y el mensaje "obtendrá el 5% de bonificación" se imprimirá para devolver un valor falso.
cond5.mierda
#!/bin/bash
echo "Ingrese el monto de las ventas"
cantidad de lectura
Echo "Ingrese la duración del tiempo"
Leer duración
if (($ cantidad> = 10000)); entonces
if (($ duración <= 7 )); then
output = "Obtendrá el 20% de bonificación"
demás
output = "Obtendrá un bono del 15%"
FI
demás
if (($ duración <= 10 )); then
output = "Obtendrá el 10% de bonificación"
demás
output = "Obtendrá un bono del 5%"
FI
FI
echo "$ salida"
Producción:
Ejecutar el guión.
$ bash cond5.mierda
El script se prueba en 12000 como cantidad y 5 como valor de duración primero. Según la condición 'if', el mensaje, "obtendrá un 20% de bono se imprime. A continuación, el script se prueba en 9000 como la cantidad y 12 como valores de duración y el mensaje "obtendrá un bono del 5%".
Uso de la declaración de casos
Sintaxis:
cajón
patrón 1) comandos ;;
patrón n) comandos ;;
ESAC
La declaración de 'caso' se puede utilizar como una alternativa a la declaración 'si'. Crea un archivo llamado 'Cond6.mierda y agregue el siguiente código para hacer algunas operaciones aritméticas simples. Este script leerá tres valores de la línea de comandos y almacenará en las variables, $ N1, $ N2 y $ OP. Aquí, $ N1 y $ N2 se utilizan para almacenar dos valores numéricos y $ OP se utiliza para almacenar cualquier operador o símbolo aritmético. La instrucción 'Case' se utiliza para verificar por cuatro símbolos para hacer cualquier operación aritmética. Cuando $ OP es '+', agregará $ N1 y $ N2 y almacenará el resultado en $ resultado. De la misma manera, los símbolos '-' y '/' se utilizan para hacer la operación de resta y división. El símbolo 'X' se usa aquí para hacer la operación de multiplicación. Para cualquier otro valor de $ OP, imprimirá un mensaje, "Número incorrecto de argumentos".
cond6.mierda
#!/bin/bash
N1 = $ 1
OP = $ 2
N2 = $ 3
Caso $ OP en
'+')
((Resultado = $ n1+$ n2)) ;;
'-')
((Resultado = $ N1- $ N2)) ;;
'X')
((Resultado = $ n1*$ n2)) ;;
'/')
((Resultado = $ n1/$ n2)) ;;
*)
Echo "Números incorrectos de argumentos"
salida 0 ;;
ESAC
echo "$ n1 $ op $ n2 = $ resultado"
Producción:
Ejecute el script con tres argumentos de línea de comando. El script se ejecuta durante cuatro veces utilizando cuatro operadores, '+', '-', 'x' y '/'.
$ bash cond6.sh 40 + 20
$ bash cond6.SH 40 - 20
$ bash cond6.sh 40 x 20
$ bash cond6.SH 40/20
La siguiente salida aparecerá después de ejecutar el script.
Ejemplo-7: instrucción 'Case' con un rango de valores
La declaración de 'caso' no puede definir múltiples condiciones con el operador lógico como la declaración 'si'. Pero utilizando la tubería ('|'), se pueden asignar múltiples condiciones en la instrucción 'Case'. Este ejemplo muestra el valor de calificación basado en marcas como Ejemplo-4 Pero usar la declaración 'Case' en lugar de 'si'. $ Nombre y $ Mark valores son dados por argumentos de línea de comandos. La primera condición se define por '9 [0-9] | 100'Para imprimir "Grado - A+". Esto significa que si el valor de $ marca está dentro de 90-99 o 100, entonces la condición será verdadera. La segunda condición es '8 [0-9]'para imprimir "grado - a" y esto coincidirá $ Mark con cualquier valor del rango, 80-89. La tercera y cuarta condición funcionan como la segunda condición. La quinta condición es '0 | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9]'para imprimir' grado - f 'y coincidirá con $ Mark con 0 o cualquier número en los rangos 0-9, 10-19, 20-29, 30-39, 40-49 y 50-59.
cond7.mierda
#!/bin/bash
# Grado de impresión basado en la marca
Nombre = $ 1
marca = $ 2
Caso $ Mark en
9 [0-9] | 100)
grado = "a+" ;;
8 [0-9])
grado = "a" ;;
7 [0-9])
grado = "b+" ;;
6 [0-9])
grado = "c+" ;;
0 | [0-9] | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9])
grado = "f" ;;
*)
Echo "Marca inválida"
salida 0 ;;
ESAC
echo "$ Nombre obtenido $ Grado"
Producción:
Ejecute el script con dos argumentos de línea de comando. El script se ejecuta cuatro veces con diferentes valores de argumentos.
$ bash cond7.Sh Lily 92
$ bash cond7.Sh Nahar 78
$ bash cond7.SH John 500
$ bash cond7.SH John AA
Se intentan explicar múltiples usos de las declaraciones de condición en este tutorial utilizando ejemplos apropiados. Esperanza, el lector podrá usar declaraciones condicionales en el script bash de eficiencia después de practicar los ejemplos anteriores correctamente.
Para más información, mira el video!