Com dominar la lògica condicional a Bash

Com Dominar La Logica Condicional A Bash



L'ús de la lògica condicional és una part molt essencial de qualsevol llenguatge de programació. La lògica condicional es pot implementar a Bash de diferents maneres per resoldre els problemes de programació. En aquest tutorial es mostren els mètodes d'ús de la lògica condicional a Bash mitjançant els diferents tipus de sentències 'si' i 'cas' per comparar la cadena i els valors numèrics, comprovar el contingut de la variable, comprovar l'existència del fitxer o directori, etc. .

Llista de continguts:

  1. Ús de la declaració 'Si'.
  2. Ús de la declaració 'If-Else'.
  3. Ús de la declaració 'If-Elif-Else'.
  4. Ús de la instrucció 'If' per comprovar una variable buida
  5. Ús de la instrucció 'If' amb l'operador lògic
  6. Ús de les declaracions 'If' niades
  7. Ús de la declaració 'If' per comprovar l'existència del fitxer
  8. Ús de la declaració 'If' per comprovar l'existència del directori
  9. Ús de la declaració 'If' amb Regex
  10. Ús de la Declaració 'Case'.

Ús de la declaració 'Si'.

Aquest exemple mostra l'ús senzill de la declaració 'si' a Bash. Es poden utilitzar sis tipus d'operadors de comparació per comparar els valors numèrics a Bash. Aquests són '-eq' (igual), '-ne' (no igual), '-le' (menys que igual), '-ge' (mayor que igual), '-lt' (menys que) i ' -gt” (més gran que). Els usos de '-lt' i '-eq' es mostren a l'script següent tant si el nombre és inferior a 99 com si no s'ha comprovat amb l'operador '-lt'. El nombre és parell o senar i el verifica l'operador '-eq'.







#!/bin/bash

#Assigna un valor numèric

( ( nombre = 50 ) )

#Comproveu el valor numèric utilitzant la instrucció 'if'.

si [ $número -lt 99 ]

aleshores

eco 'El número és vàlid'.

ser

#Comprova si el número és parell o no

si [ $ ( ( $número % 2 ) ) -eq 0 ]

aleshores

eco 'El nombre és parell'.

ser

Sortida :



La sortida següent apareix després d'executar l'script anterior:



  p1





Anar a dalt

Ús de la declaració 'If-Else'.

L'ús de la declaració 'if-else' es mostra a l'script següent. Es pren un valor de cadena de l'usuari i comprova si el valor és 'BLAU' o no utilitzant la instrucció 'if-else'.



#!/bin/bash

#Preneu un valor de cadena de l'usuari

llegir -p 'Introdueix el teu color preferit:' color

#Comproveu el valor de la cadena utilitzant la instrucció 'if-else'.

si [ ${color^^} == 'BLAU' ]

aleshores

eco 'Bé, el color blau està disponible.'

altra cosa

eco ' $color No està disponible.'

ser

Sortida :

La sortida següent apareix després d'executar l'script anterior si es pren 'vermell' com a entrada:

  p2-1

La sortida següent apareix després d'executar l'script anterior si es pren 'blau' com a entrada:

  p2-2

Anar a dalt

Ús de la declaració 'If-Elif-Else'.

L'ús de la declaració 'if-elif-else' es mostra a l'script següent. Es pren un número de l'usuari i es comprova amb els diferents valors fins que es troba alguna coincidència. Si es troba alguna coincidència, s'imprimeix el missatge corresponent. Si no es troba cap coincidència, s'imprimeix el missatge predeterminat.

#!/bin/bash

#Preneu el valor d'identificador de l'usuari

llegir -p 'Introduïu el vostre número de sèrie:' sèrie

#Comproveu el valor d'entrada utilitzant la instrucció 'if-elif-else'

si [ $serial == '4523' ]

aleshores

eco 'Esteu seleccionat al grup A'.

Elif [ $serial == '8723' ]

aleshores

eco 'Esteu seleccionat al grup B'.

Elif [ $serial == '3412' ]

aleshores

eco 'Esteu seleccionat al grup C'.

altra cosa

eco 'No estàs seleccionat' .

ser

Sortida:

La sortida següent apareix després d'executar l'script amb el valor de 8723:

  p3-1

La sortida següent apareix després d'executar l'script amb el valor de 9078:

  p3-2

Anar a dalt

Ús de la instrucció 'If' per comprovar una variable buida

El mètode per comprovar si una variable està buida sense utilitzar una instrucció 'si' es mostra a l'script següent. L'opció '-z' s'utilitza a la instrucció 'if' per fer aquesta tasca.

#!/bin/bash

#Preneu el valor d'identificador de l'usuari

llegir -p 'Introduïu el vostre número de sèrie:' sèrie

#Comprova si la variable està buida o no

si [ ! -Amb $serial ]

aleshores

#Comproveu el valor d'entrada utilitzant la instrucció 'if-elif-else'.

si [ $serial == '690' ]

aleshores

eco 'Esteu seleccionat a l'equip-1'.

Elif [ $serial == '450' ]

aleshores

eco 'Esteu seleccionat a l'equip 2'.

altra cosa

eco 'No estàs seleccionat' .

ser

altra cosa

eco 'No es dóna cap número de sèrie'.

ser

Sortida :

La sortida següent apareix després d'executar l'script amb el valor de 690:

  p4-1

La sortida següent apareix després d'executar l'script si no es pren cap valor d'entrada:

  p4-2

Anar a dalt

Ús de la instrucció 'If' amb operadors lògics

Es poden utilitzar tres tipus d'operadors lògics a la sentència condicional Bash. Aquests són OR lògic (||), AND lògic (&&) i NOT lògic (!). Es pren un valor de codi de l'usuari. Si el valor d'entrada no és buit, el valor es comprova amb dos valors de codi mitjançant l'OR lògic. Si el valor coincideix amb qualsevol codi, s'imprimeix el missatge corresponent. Si no es troba cap codi coincident, s'imprimeix el missatge predeterminat.

#!/bin/bash

#Preneu el codi del curs de l'usuari

llegir -p 'Introdueix el codi del curs:' codi

#Comprova si la variable està buida o no

si [ ! -Amb $codi ]

aleshores

#Comproveu el valor d'entrada utilitzant la instrucció 'if-elif-else'

si [ [ $codi == 'CSE-106' || $codi == 'CSE-108' ] ]

aleshores

eco 'Curs CSE'.

Elif [ [ $codi == 'BBA-203' || $codi == 'BBA-202' ] ]

aleshores

eco 'Curs de BBA'.

altra cosa

eco 'Codi de curs no vàlid'.

ser

altra cosa

eco 'No es dóna cap codi de curs'.

ser

Sortida :

La sortida següent apareix després d'executar l'script amb el valor d'entrada 'CSE-108':

  p5-1

La sortida següent apareix després d'executar l'script amb el valor d'entrada de 'BBA-56':

  p5-2

Anar a dalt

Ús de les declaracions 'If' niades

Quan s'utilitza una condició 'si' dins d'una altra condició 'si', s'anomena declaració 'si' imbricada. El mètode d'utilitzar el 'si' imbricat es mostra a l'script següent. Es prenen dos valors de marca de l'usuari. Si els valors d'entrada no són buits, la primera condició 'si' verifica si el valor de '$theory' és superior o igual a 60 o no. Si la primera condició 'si' retorna 'true', la segona condició 'si' comprova si el valor de '$lab' és superior o igual a 50 o no. Si la segona condició 'si' també retorna 'true', s'imprimeix un missatge d'èxit. En cas contrari, s'imprimeix un missatge d'error.

#!/bin/bash

#Preneu la nota de teoria

llegir -p 'Introduïu la nota de teoria:' teoria

#Preneu la nota de laboratori

llegir -p 'Introduïu la marca de laboratori:' laboratori

#Comprova si les variables estan buides o no

si [ [ ! -Amb $teoria && ! -Amb $lab ] ]

aleshores

#Comproveu els valors d'entrada utilitzant una instrucció 'si' imbricada

si [ $teoria -ge 60 ]

aleshores

si [ $lab -ge 50 ]

aleshores

eco 'Has passat'.

altra cosa

eco 'Has fracassat'.

ser

altra cosa

eco 'Has fracassat'.

ser

altra cosa

eco 'La nota de teoria o de laboratori està buida'.

ser

Sortida :

La sortida següent apareix si tots dos o un dels valors d'entrada estan buits:

  p6-1

La sortida següent apareix si es pren 78 com a notes de teoria i 45 com a notes de laboratori. Aquí, la segona condició 'si' retorna 'fals':

  p6-2

La sortida següent apareix si es pren 67 com a notes de teoria i 56 com a notes de laboratori. Aquí, ambdues condicions 'si' tornen 'true':

  p6-3

La sortida següent apareix si es pren 50 com a notes de teoria i 80 com a notes de laboratori. Aquí, la primera condició 'si' retorna 'fals':

  p6-4

Anar a dalt

Ús de la declaració 'If' per comprovar l'existència del fitxer

L'existència del fitxer es pot comprovar mitjançant l'script bash de dues maneres. Un està utilitzant l'operador '-f' amb claudàtors '[]'. Un altre és utilitzar l'ordre 'prova' i l'operador '-f'. Es pren un nom de fitxer i comprova l'existència del fitxer mitjançant la condició 'si' amb l'operador '-f'. A continuació, s'agafa un altre nom de fitxer i es comprova l'existència del fitxer mitjançant la instrucció 'if' amb l'ordre 'prova' i l'operador '-f'.

#!/bin/bash

#Agafa el nom del fitxer

llegir -p 'Introduïu un nom de fitxer:' fn1

#Comproveu si el fitxer existeix o no sense utilitzar `test`

si [ -f $fn1 ]

aleshores

eco ' $fn1 el fitxer existeix.'

altra cosa

eco ' $fn1 l'arxiu no existeix.'

ser

#Afegeix una nova línia

eco

#Preneu un altre nom de fitxer

llegir -p 'Introduïu un altre nom de fitxer:' fn2

#Comproveu si el fitxer existeix o no utilitzant `test`

si prova -f $fn2 ; aleshores

eco ' $fn2 el fitxer existeix.'

#Comproveu si el fitxer està buit o no utilitzant `test`

si prova -Amb $fn2 ; aleshores

eco ' $fn2 fitxer està buit.'

altra cosa

eco ' $fn2 el fitxer no està buit.'

ser

altra cosa

eco ' $fn2 l'arxiu no existeix.'

ser

Sortida :

La sortida següent apareix després d'executar l'script prenent 'test.txt' i 'test.txt' com a noms de fitxer. Segons la sortida, tots dos fitxers existeixen a la ubicació actual i el fitxer 'testing.txt' està buit:

  p7-1

La sortida següent apareix després d'executar l'script prenent 'f1.txt' i 'test.txt' com a noms de fitxer. Segons la sortida, el fitxer 'f1.txt' no existeix a la ubicació actual i el fitxer 'test.txt' no està buit:

  p7-2

Anar a dalt

Ús de la declaració 'If' per comprovar l'existència del directori

L'existència del directori es pot comprovar mitjançant l'script Bash de dues maneres com el fitxer. Un està utilitzant l'operador '-d' amb claudàtors '[]'. Un altre és utilitzar l'ordre 'prova' i l'operador '-d'. Es pren un nom de directori i es comprova l'existència del directori mitjançant la condició 'si' amb l'operador '-d'. Aleshores, s'agafa un altre nom de directori i comprova l'existència del fitxer mitjançant la instrucció 'if' amb l'ordre 'prova' i l'operador '-d'.

#!/bin/bash

#Preneu un nom de directori

llegir -p 'Introduïu un nom de directori:' tu1

#Comproveu si el directori existeix o no sense utilitzar `test`

si [ -d $dir1 ]

aleshores

eco ' $dir1 el directori existeix'.

altra cosa

eco ' $dir1 directori no existeix.'

ser

#Afegeix una nova línia

eco

#Preneu un altre nom de directori

llegir -p 'Introduïu un altre nom de directori:' dir2

#Comproveu si el fitxer existeix o no utilitzant `test`

si prova -d $dir2

aleshores

eco ' $dir2 el directori existeix'.

altra cosa

eco ' $dir2 directori no existeix.'

ser

Sortida :

La sortida següent apareix després d'executar l'script amb els noms de directori 'temp' i 'fitxers'. Segons la sortida, tots dos directoris existeixen a la ubicació actual. A continuació, s'executa l'ordre 'ls' per comprovar el contingut dels directoris:

  p8-1

La sortida següent apareix després d'executar l'script amb els noms de directori 'prova' i 'nou'. Segons la sortida, ambdós directoris no existeixen a la ubicació actual. Aleshores, la sortida de l'ordre 'ls' mostra que els dos directoris no existeixen:

  p8-2

Anar a dalt

Ús de la declaració 'If' amb Regex

El següent script mostra el mètode de validació de les dades d'entrada mitjançant una declaració 'si' amb l'expressió regular. Aquí, dos valors d'entrada es prenen de l'usuari i s'emmagatzemen a les variables '$bookname' i '$bookprice'. La condició 'si' s'utilitza a l'script per comprovar que la variable '$bookname' conté tots els caràcters alfabètics i que '$bookprice' conté un número.

#!/bin/bash

#Preneu el nom del llibre i el preu de l'usuari

eco -n 'Introduïu el nom del llibre:'

llegir nom del llibre

eco -n 'Introduïu el preu del llibre:'

llegir preu del llibre

#Comprova que el nom del llibre només conté l'alfabet

si ! [ [ ' $nom del llibre ' =~ [ A-Za-z ] ] ] ; aleshores

eco 'El nom del llibre no és vàlid'.

altra cosa

eco 'El nom del llibre és vàlid'.

ser

#Comprova que el preu del llibre només conté dígits

si ! [ [ ' $ preu del llibre ' =~ [ 0 - 9 ] ] ] ; aleshores

eco 'El preu del llibre només pot contenir dígits'.

altra cosa

eco 'El preu del llibre és vàlid'.

ser

Sortida :

La sortida següent apareix després d'executar l'script amb els valors d'entrada de 'Bash Programming' com a nom del llibre i 78 com a preu del llibre:

  p9-1

La sortida següent apareix després d'executar l'script amb els valors d'entrada de 90 com a nom del llibre i 'Bash' com a preu del llibre:

  p9-2

Anar a dalt

Ús de la Declaració 'Case'.

La declaració 'case' és l'alternativa de la declaració 'if-elif-else', però totes les tasques de la declaració 'if-elif-else' no es poden fer amb la declaració 'case'. L'ús senzill de la declaració 'case' es mostra a l'script següent. Es pren un valor numèric de l'usuari com a valor del mes actual. A continuació, s'imprimeix el mes corresponent si es troba algun valor coincident a la declaració 'case'. En cas contrari, s'imprimeix el missatge predeterminat.

#!/bin/bash

#Preneu el valor del mes actual en nombre

llegir -p 'Introduïu el mes d'avui al número:' b_mes

#Imprimeix el text abans d'imprimir el nom del mes

eco -n 'El nom del mes actual és'

# Descobriu i imprimiu el nom del mes coincident segons l'entrada

Caixa $b_mes en

1 | 01 ) eco 'Gener'. ;;

2 | 02 ) eco 'Febrer'. ;;

3 | 03 ) eco 'Març'. ;;

4 | 04 ) eco 'Abril'. ;;

5 | 05 ) eco 'Maig'. ;;

6 | 06 ) eco 'Juny.' ;;

7 | 07 ) eco 'Juliol'. ;;

8 | 08 ) eco 'Agost.' ;;

9 | 09 ) eco 'Setembre'. ;;

10 ) eco 'Octubre'. ;;

11 ) eco 'De novembre.' ;;

12 ) eco 'Desembre'. ;;

* ) eco 'no trobat.' ;;

esac

Sortida :

La sortida següent apareix després d'executar l'script amb el valor de 6:

  p10-1

La sortida següent apareix després d'executar l'script amb el valor de 09:


  p10-2

La sortida següent apareix després d'executar l'script amb el valor de 14:

  p10-3

Anar a dalt

Conclusió

Els diferents usos de la lògica condicional amb les declaracions 'si' i 'cas' es mostren als 10 exemples d'aquest tutorial. El concepte d'utilitzar la lògica condicional a Bash s'esborrarà per als nous usuaris de Bash després de llegir aquest tutorial.