- Ús de la declaració 'Si'.
- Ús de la declaració 'If-Else'.
- Ús de la declaració 'If-Elif-Else'.
- Ús de la instrucció 'If' per comprovar una variable buida
- Ús de la instrucció 'If' amb l'operador lògic
- Ús de les declaracions 'If' niades
- Ús de la declaració 'If' per comprovar l'existència del fitxer
- Ús de la declaració 'If' per comprovar l'existència del directori
- Ús de la declaració 'If' amb Regex
- Ú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:
Ú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:
La sortida següent apareix després d'executar l'script anterior si es pren 'blau' com a entrada:
Ú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:
La sortida següent apareix després d'executar l'script amb el valor de 9078:
Ú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:
La sortida següent apareix després d'executar l'script si no es pren cap valor d'entrada:
Ú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':
La sortida següent apareix després d'executar l'script amb el valor d'entrada de 'BBA-56':
Ú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:
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':
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':
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':
Ú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:
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:
Ú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:
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:
Ú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:
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:
Ú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:
La sortida següent apareix després d'executar l'script amb el valor de 09:
La sortida següent apareix després d'executar l'script amb el valor de 14:
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.