En aquest tema, entendrem com utilitzar-lo si declaracions en scripts Bash per completar les nostres tasques automatitzades.
Baixa si les declaracions són beneficioses. S'utilitzen per realitzar tasques condicionals en el flux seqüencial d'execució d'instruccions. Si les declaracions normalment ens permeten prendre decisions als nostres scripts Bash. Ens ajuden a decidir si s'executa o no un fragment de codi en funció de la condició que podem establir.
Declaracions if bàsiques
Una instrucció if bàsica ordena que si una condició particular és certa, només executeu un conjunt d'accions donat. Si no és cert, no executeu aquestes accions. Si la declaració es basa en el format següent:
Sintaxi
if [ expression ]; then statements fi
La declaració entre aleshores i ser (Si cap enrere) només s'executarà si l'expressió (entre claudàtors) és certa.
ordenació de selecció en java
Nota:Observa els espais utilitzats a la primera línia i un punt i coma al final de la primera línia; tots dos són obligatoris d'utilitzar.Si declaració condicionalacaba ambser.
- Per utilitzar diverses condicions amb l'operador AND:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Per utilitzar diverses condicions amb l'operador OR:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Per a expressions compostes amb operadors AND & OR, podem utilitzar la sintaxi següent:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
A continuació es mostren alguns exemples que demostren l'ús de la instrucció if:
Exemple 1
En aquest exemple, agafeu una entrada d'usuari de qualsevol número i comproveu si el valor és superior a 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Sortida
Si introduïm el número 159, la sortida serà així:
Exemple 2
En aquest exemple, demostrem l'ús de declaració si amb un escenari senzill de comparar dues cadenes:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Sortida
multithreading en java
Exemple 3
En aquest exemple, demostrem com comparar números mitjançant la declaració if:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Sortida
Exemple 4
En aquest exemple, definirem com utilitzar l'operador AND per incloure diverses condicions a l'expressió if:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Sortida
Exemple 5
En aquest exemple, definirem com utilitzar l'operador OR per incloure diverses condicions a l'expressió if:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Sortida
Exemple 6
En aquest exemple, definirem com utilitzar AND i OR per incloure diverses condicions a l'expressió if:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Sortida
mvc al marc de primavera
Opcions per a la instrucció If a Bash Scripting
La instrucció If conté moltes opcions per realitzar una tasca específica. Aquestes opcions es poden utilitzar per a operacions amb fitxers, operacions amb cadenes, etc. A continuació es mostren les opcions més utilitzades:
Opcions (operadors) | Descripció |
---|---|
! EXPRESSIÓ | Per comprovar si EXPRESSIÓ és falsa. |
-n STRING | Per comprovar si la longitud de STRING és superior a zero. |
-z STRING | Per comprovar si la longitud de STRING és zero (és a dir, està buida) |
STRING1 == STRING2 | Per comprovar si STRING1 és igual a STRING2. |
STRING1 != STRING2 | Per comprovar si STRING1 no és igual a STRING2. |
INTEGER1 -eq INTEGER2 | Per comprovar si INTEGER1 és numèricament igual a INTEGER2. |
INTEGER1 -gt INTEGER2 | Per comprovar si INTEGER1 és numèricament més gran que INTEGER2. |
INTEGER1 -lt INTEGER2 | Per comprovar si INTEGER1 és numèricament menor que INTEGER2. |
-d FITXER | Per comprovar si FILE existeix i és un directori. |
-e FITXA | Per comprovar si FILE existeix. |
-r FITXER | Per comprovar si FILE existeix i es concedeix el permís de lectura. |
-s FITXER | Per comprovar si FILE existeix i la seva mida és superior a zero (el que vol dir que no està buit). |
-w FITXER | Per comprovar si FILE existeix i es concedeix el permís d'escriptura. |
x FITXA | Per comprovar si FILE existeix i es concedeix el permís d'execució. |
Niat If
Podeu aplicar tantes declaracions 'if' com siguin necessàries dins del vostre script bash. També és possible utilitzar una declaració if dins d'una altra 'sentència if'. Es coneix com a declaració If anidada.
Exemple
En aquest exemple, trobarem 'si un nombre donat és més gran que 50 i si és un nombre parell' utilitzant l'expressió if imbricada.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Sortida
Si introduïm un valor d'argument com a 100, la sortida serà així:
Conclusió
En aquest tema, vam parlar de com podríem utilitzar la ramificació condicional en el flux seqüencial d'execució de sentències amb la sentència bash if.