În acest subiect, vom înțelege cum să folosim declaraţii dacă în scripturi Bash pentru a finaliza sarcinile noastre automate.
Bash dacă afirmațiile sunt benefice. Ele sunt utilizate pentru a efectua sarcini condiționate în fluxul secvenţial de execuție a instrucțiunilor. Declarațiile If de obicei ne permit să luăm decizii în scripturile noastre Bash. Ele ne ajută să decidem dacă să rulăm sau nu o bucată de coduri în funcție de condiția pe care o putem stabili.
Declarații if de bază
O instrucțiune if de bază comandă că, dacă o anumită condiție este adevărată, atunci executați doar un anumit set de acțiuni. Dacă nu este adevărat, atunci nu executați acele acțiuni. Dacă declarația se bazează pe următorul format:
ce este desktop ini
Sintaxă
if [ expression ]; then statements fi
Declarația dintre apoi și fi (Dacă înapoi) va fi executat numai dacă expresia (între paranteze drepte) este adevărată.
Notă:Observați spațiile folosite în prima linie și punct și virgulă la sfârșitul primei rânduri; ambele sunt obligatorii de utilizat.Dacă declarația condiționatăse termină cufi.
- Pentru utilizarea mai multor condiții cu operator AND:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Pentru utilizarea mai multor condiții cu operatorul SAU:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Pentru expresiile compuse cu operatori AND & SAU, putem folosi următoarea sintaxă:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Mai jos sunt câteva exemple care demonstrează utilizarea instrucțiunii if:
Exemplul 1
În acest exemplu, luați o intrare de utilizator a oricărui număr și verificați dacă valoarea este mai mare decât 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Ieșire
Dacă introducem numărul 159, atunci rezultatul va arăta astfel:
program python pentru căutare binară
Exemplul 2
În acest exemplu, demonstrăm utilizarea lui declarația dacă cu un scenariu simplu de comparare a două șiruri:
#!/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
Ieșire
Exemplul 3
În acest exemplu, demonstrăm cum să comparăm numere folosind instrucțiunea 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
Ieșire
Exemplul 4
În acest exemplu, vom defini cum să folosiți operatorul AND pentru a include mai multe condiții în expresia 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
Ieșire
Exemplul 5
În acest exemplu, vom defini cum să folosiți operatorul OR pentru a include mai multe condiții în expresia 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
Ieșire
Exemplul 6
În acest exemplu, vom defini cum să folosiți AND și SAU pentru a include mai multe condiții în expresia 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
Ieșire
tat forma completa
Opțiuni pentru instrucțiunea If în Bash Scripting
Instrucțiunea If conține multe opțiuni pentru a efectua o anumită sarcină. Aceste opțiuni pot fi folosite pentru operațiuni cu fișiere, operațiuni cu șiruri etc. Iată câteva dintre opțiunile cele mai utilizate:
JavaScript global variabil
Opțiuni (operatori) | Descriere |
---|---|
! EXPRESIE | Pentru a verifica dacă EXPRESIA este falsă. |
-n STRING | Pentru a verifica dacă lungimea lui STRING este mai mare decât zero. |
-z ȘIR | Pentru a verifica dacă lungimea STRING este zero (adică este goală) |
ȘIR1 == ȘIR 2 | Pentru a verifica dacă STRING1 este egal cu STRING2. |
STRING1 != STRING2 | Pentru a verifica dacă STRING1 nu este egal cu STRING2. |
INTEGER1 -eq INTEGER2 | Pentru a verifica dacă INTEGER1 este numeric egal cu INTEGER2. |
INTEGER1 -gt INTEGER2 | Pentru a verifica dacă INTEGER1 este numeric mai mare decât INTEGER2. |
INTEGER1 -lt INTEGER2 | Pentru a verifica dacă INTEGER1 este numeric mai mic decât INTEGER2. |
-d FIȘIER | Pentru a verifica dacă FILE există și este un director. |
-e FIȘIER | Pentru a verifica dacă FILE există. |
-r FIȘIER | Pentru a verifica dacă FILE există și permisiunea de citire este acordată. |
-s FIȘIER | Pentru a verifica dacă FILE există și dimensiunea lui este mai mare decât zero (ceea ce înseamnă că nu este gol). |
-w FIȘIER | Pentru a verifica dacă FILE există și permisiunea de scriere este acordată. |
x FIȘIER | Pentru a verifica dacă FILE există și permisiunea de execuție este acordată. |
Imbricat Dacă
Puteți aplica cât mai multe „instrucțiuni if” sunt necesare în scriptul dumneavoastră bash. De asemenea, este posibil să utilizați o declarație if în interiorul unei alte „instrucțiuni if”. Este cunoscut sub numele de Imbricat If.
Exemplu
În acest exemplu, vom găsi „dacă un număr dat este mai mare de 50 și dacă este un număr par” utilizând expresia imbricată if.
#!/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
Ieșire
Dacă introducem o valoare a argumentului ca 100, atunci rezultatul va arăta astfel:
Concluzie
În acest subiect, am discutat despre cum am putea folosi ramificarea condiționată în fluxul secvențial de execuție a instrucțiunilor cu instrucțiunea bash if.