Bash este un interpret pentru limbaje de comandă. Este un interpret de comandă implicit pe majoritatea GNU/ sisteme Linux și este disponibil pe scară largă pe diverse sisteme de operare. Numele este o abreviere pentru Bourne-Again Shell . Scriptarea permite executarea instrucțiunilor care altfel ar fi executate una câte una în mod interactiv.
În acest articol, vom discuta despre declarația if în scripting bash.
Declarația Bash If
Sintaxa de bază a unei instrucțiuni „dacă” în Bash:
#!/bin/bash if [ condition ]; then # code to be executed if the condition is true fi>
Explicaţie:
-
if [ condition ]; then>: Această linie începe instrucțiunea if, wherecondition>este expresia care este evaluată. Dacă condiția este adevărată, codul din interiorulthen>blocul este executat. -
# code to be executed if the condition is true>: Acesta este blocul de cod care este executat dacă condiția specificată în instrucțiunea if este adevărată. -
fi>: Aceasta marchează sfârșitul instrucțiunii if.
Script Bash pentru a determina dacă un număr este par
Următorul este un exemplu scenariu care vă va solicita să introduceți un număr și apoi verifică dacă numărul dat este par.
#!/usr/bin/bash
# Acest script solicită utilizatorului să introducă un număr, verifică dacă este par și tipărește un mesaj în consecință.
# Solicitați utilizatorului să introducă un numărecho -n Introduceți numărul:
citeste xnumerotati alfabetul# Verificați dacă numărul introdus este par
dacă [ $((x % 2)) == 0 ]; apoi
Numărul echo este par
fi
Explicaţie:
-
#!/usr/bin/bash>: Aceasta este o linie shebang care specifică calea către interpretul Bash. Indică faptul că scriptul ar trebui să fie executat folosind Bash. -
echo -n 'Enter Number: '>: Această linie afișează promptul Introduceți numărul: fără un caracter de linie nouă (-n>opțiune). Așteaptă ca utilizatorul să introducă un număr. -
read x>: Citește intrarea utilizatorului și o atribuie variabileix>. -
if [ $((x % 2)) == 0 ]; then>: Această linie verifică dacă restul diviziunii numărului introdus (x>) cu 2 este egal cu 0. Dacă este adevărat, înseamnă că numărul este par. -
echo 'Number is Even'>: Dacă condiția din instrucțiunea if este adevărată, această linie afișează Numărul este Par în consolă.
Ieșire:

Script Bash pentru a determina dacă un număr este par
Notă: Scriptul nu gestionează cazurile în care utilizatorul introduce o valoare non-numerică. Dacă utilizatorul introduce o valoare non-numerică, aceasta poate produce rezultate neașteptate. Ar putea fi adăugată validare suplimentară a intrărilor pentru a rezolva acest lucru.
Declarație Bash if-else
Sintaxa de bază a unei instrucțiuni „if-else” în Bash:
#!/bin/bash
dacă [ condiție ]; apoi
# cod de executat dacă condiția este adevărată
altfel
# cod de executat dacă condiția este falsă
fi
Explicaţie:
-
if [ condition ]; then>: Această linie începe instrucțiunea if, wherecondition>este expresia care este evaluată. Dacă condiția este adevărată, codul din interiorulthen>blocul este executat. -
# code to be executed if the condition is true>: Acesta este blocul de cod care este executat dacă condiția specificată în instrucțiunea if este adevărată. -
else>: Dacă condiția din instrucțiunea if este falsă, codul din interiorulelse>blocul este executat. -
# code to be executed if the condition is false>: Acesta este blocul de cod care este executat dacă condiția specificată în instrucțiunea if este falsă. -
fi>: Aceasta marchează sfârșitul declarației if-else.
Cum să găsiți numărul mai mare folosind instrucțiuni if-else în scriptul Bash?
Iată scriptul Bash pentru a afla numărul mai mare folosind instrucțiunea if-else din Bash Script.
#!/bin/bash
# Solicitați utilizatorului să introducă o valoare pentru xecho -n Introduceți valoarea lui x:
citeste xdacă [ $x -gt 5 ]; apoi
echo x este mai mare decât 5
altfel
echo x nu este mai mare de 5
fi
Explicație:
- #!/bin/bash : Această linie se numește shebang și indică faptul că scriptul trebuie interpretat și executat folosind shell-ul Bash.
- # Solicitați utilizatorului să introducă o valoare pentru x : Acesta este un comentariu care indică scopul următorului rând.
- echo -n Introduceți valoarea lui x: : Această linie imprimă mesajul Introduceți valoarea lui x: la terminal fără a trece la următoarea linie. Utilizatorul își va introduce valoarea pe aceeași linie.
- citeste x : Această linie citește intrarea utilizatorului și o atribuie variabilei „x”.
- dacă [ $x -gt 5 ]; apoi : Aceasta este o declarație if care verifică dacă valoarea lui „x” este mai mare decât 5.
- $x : Reprezintă valoarea variabilei ‘x’.
- -gt : reprezintă mai mare decât în contextul comparației numerice.
- 5 : valoarea comparată cu.
- echo x este mai mare decât 5 : Dacă condiția din linia anterioară este adevărată, această linie va fi executată, tipărirea x este mai mare decât 5 la terminal.
- altfel : Dacă condiția din instrucțiunea if este falsă, scriptul trece la blocul else.
- echo x nu este mai mare de 5 : Această linie este executată dacă valoarea lui „x” nu este mai mare de 5, imprimarea x nu este mai mare de 5 la terminal.
- fi : Aceasta înseamnă sfârșitul blocului if-else.
Ieșire:

Găsirea unui număr mai mare folosind if-else
Declarație Bash if-elif-else
Theif-elif-else>declarația în Bash este folosită pentru ramificarea condiționată. Vă permite să specificați mai multe condiții și să executați diferite blocuri de cod pe baza evaluării acestor condiții.
Sintaxa de bază a unei instrucțiuni „if-elif-else” în Bash:
#!/bin/bash
dacă [condiția1]; apoi
# Cod de executat dacă condiția1 este adevărată
elif [condiție2]; apoi
# Cod de executat dacă condiția2 este adevărată
elif [condiție3]; apoi
# Cod de executat dacă condiția3 este adevărată
altfel
# Cod de executat dacă niciuna dintre condiții nu este adevărată
fi
Explicaţie:
- dacă [condiția1]; apoi : Acesta este punctul de plecare al
if-elif-else>afirmație. Codul din acest bloc va fi executat dacăcondition1>este adevarat. - # Cod de executat dacă condiția1 este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition1>este adevarat. - elif [condiție2]; apoi : Dacă
condition1>este fals, scriptul verificăcondition2>. Dacăcondition2>este adevărat, codul din acest bloc este executat. - # Cod de executat dacă condiția2 este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition2>este adevarat. - elif [condiție3]; apoi : Dacă ambele
condition1>șicondition2>sunt false, scriptul verificăcondition3>. Dacăcondition3>este adevărat, codul din acest bloc este executat. - # Cod de executat dacă condiția3 este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition3>este adevarat. - altfel : Dacă niciuna dintre condițiile precedente (condiția1, condiția2, condiția3 etc.) nu este adevărată, codul din
else>blocul este executat. - # Cod de executat dacă niciuna dintre condiții nu este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să-l rulați dacă niciuna dintre condiții nu este adevărată.
- fi : Acesta marchează sfârșitul
if-elif-else>afirmație. Cuvântul fi este scris înapoi și este folosit pentru a închide blocurile condiționate în Bash.
Cum să aflați dacă numărul este pozitiv, negativ sau zero folosind instrucțiunea „if-elif-else” în Bash?
Să mărim codul din exemplul de mai sus pentru a adăuga condiția pentru a verifica zero.
#!/bin/bash
# Solicitați utilizatorului să introducă un număr
lista de programe pythonecho -n Introduceți un număr:
citeste numdacă [ $num -gt 0 ]; apoi
echo $num este un număr pozitiv.
elif [ $num -lt 0 ]; apoi
echo $num este un număr negativ.
altfel
echo $num este zero.
fipreity zinta
Explicaţie:
- #!/bin/bash : Această linie este un shebang care indică faptul că scriptul trebuie interpretat și executat folosind shell-ul Bash.
- # Solicitați utilizatorului să introducă un număr : Acesta este un comentariu care indică scopul următorului rând.
- echo -n Introduceți un număr: : Această linie afișează mesajul Introduceți un număr: la terminal fără a trece la linia următoare. Utilizatorul își va introduce numărul pe aceeași linie.
- citeste num : Această linie citește intrarea utilizatorului și o atribuie variabilei „num”.
- dacă [ $num -gt 0 ]; apoi : Aceasta este o instrucțiune if care verifică dacă valoarea lui „num” este mai mare decât 0.
- $num : Reprezintă valoarea variabilei „num”.
- -gt : reprezintă mai mare decât în contextul comparației numerice.
- 0 : valoarea comparată cu.
- echo $num este un număr pozitiv. : Dacă condiția din linia anterioară este adevărată, această linie va fi executată, imprimarea $num este un număr pozitiv. la terminal.
- elif [ $num -lt 0 ]; apoi : Dacă condiția din instrucțiunea if este falsă, această linie verifică dacă valoarea lui „num” este mai mică decât 0.
- $num : Reprezintă valoarea variabilei „num”.
- -lt : reprezintă mai puțin decât în contextul comparației numerice.
- 0 : valoarea comparată cu.
- echo $num este un număr negativ. : Dacă condiția din instrucțiunea elif este adevărată, această linie va fi executată, imprimarea $num este un număr negativ. la terminal.
- altfel : Dacă ambele condiții din instrucțiunile if și elif sunt false, scriptul trece la blocul else.
- echo $num este zero. : Această linie este executată dacă valoarea lui „num” nu este mai mare decât 0 și nu mai mică de 0, printarea $num este zero. la terminal.
- fi : Aceasta înseamnă sfârșitul blocului if-elif-else.
Ieșire:

dacă Numărul este pozitiv, negativ sau zero folosind „if-elif-else”.
Bash Imbricat if Declarație
În Bash, puteți utiliza imbricatif>enunţuri pentru a crea structuri condiţionale mai complexe. Iată sintaxa pentru un imbricatif>afirmație:
#!/bin/bash
dacă [condiția1]; apoi
# Cod de executat dacă condiția1 este adevărată
dacă [condiția2]; apoi
# Cod de executat dacă condiția2 este adevărată
altfel
# Cod de executat dacă condiția2 este falsă
fi
altfel
# Cod de executat dacă condiția1 este falsă
fi
Explicaţie:
- dacă [condiția1]; apoi : Acesta este exteriorul
if>afirmație. Dacăcondition1>este adevărat, codul din interiorul acestui bloc este executat. - # Cod de executat dacă condiția1 este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition1>este adevarat. - dacă [condiția2]; apoi : În interiorul blocului exteriorului
if>afirmație, există un interiorif>afirmație. Dacăcondition2>este adevărat, codul din interiorul acestui bloc este executat. - # Cod de executat dacă condiția2 este adevărată : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition2>este adevarat. - altfel : Dacă
condition2>în interiorif>declarația este falsă, codul din interiorulelse>blocul interioruluiif>instrucțiunea este executată. - # Cod de executat dacă condiția2 este falsă : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition2>este fals. - fi : Aceasta marchează sfârșitul interiorului
if>afirmație. - altfel : Dacă
condition1>în exteriorif>declarația este falsă, codul din interiorulelse>blocul exterioruluiif>instrucțiunea este executată. - # Cod de executat dacă condiția1 este falsă : Înlocuiți acest comentariu cu codul real pe care doriți să îl executați dacă
condition1>este fals. - fi : Aceasta marchează sfârșitul exteriorului
if>afirmație.
Cum să verificați eligibilitatea în funcție de vârstă și beneficiile pentru cetățeni în vârstă în Bash folosind declarații Imbricate If?
Să modificăm puțin codul de mai sus pentru a folosi imbricat-if.
#!/bin/bash
# Solicitați utilizatorului să introducă o vârstă
echo -n Introduceți vârsta dvs.:
citeste varstaif [ $age -ge 18 ]; apoi
echo Sunteți eligibil pentru a vota.
if [ $age -ge 65 ]; apoi
echo Sunteți, de asemenea, eligibil pentru beneficii pentru cetățeni în vârstă.
altfel
echo Nu sunteți încă eligibil pentru beneficii pentru cetățeni în vârstă.
fi
altfel
echo Nu sunteți încă eligibil pentru a vota.
fi
Explicaţie:
- #!/bin/bash : Această linie este un shebang care indică faptul că scriptul trebuie interpretat și executat folosind shell-ul Bash.
- # Solicitați utilizatorului să introducă o vârstă : Acesta este un comentariu care indică scopul următorului rând.
- echo -n Introduceți vârsta dvs.: : Această linie afișează mesajul Introduceți vârsta: la terminal fără a trece la următoarea linie. Utilizatorul își va introduce vârsta pe aceeași linie.
- citeste varsta : Această linie citește intrarea utilizatorului și o atribuie variabilei „vârstă”.
- if [ $age -ge 18 ]; apoi : Aceasta este o declarație if care verifică dacă valoarea „vârstei” este mai mare sau egală cu 18.
- $varsta : Reprezintă valoarea variabilei „vârstă”.
- -GE : reprezintă mai mare sau egal cu în contextul comparației numerice.
- 18 : valoarea comparată cu.
- echo Sunteți eligibil pentru a vota. : Dacă condiția din rândul precedent este adevărată, această linie va fi executată, tipărind Ești eligibil să votezi. la terminal.
- if [ $age -ge 65 ]; apoi : În primul bloc if, aceasta este o altă instrucțiune if care verifică dacă valoarea „vârstei” este mai mare sau egală cu 65.
- $varsta : Reprezintă valoarea variabilei „vârstă”.
- -GE : reprezintă mai mare sau egal cu în contextul comparației numerice.
- 65 : valoarea comparată cu.
- echo Sunteți, de asemenea, eligibil pentru beneficii pentru cetățeni în vârstă. : Dacă condiția din declarația interioară if este adevărată, acest rând va fi executat, tipărind De asemenea, sunteți eligibil pentru beneficii pentru cetățeni în vârstă. la terminal.
- altfel : Dacă condiția din instrucțiunea if interioară este falsă, scriptul sare la blocul else din instrucțiunea if exterioară.
- echo Nu sunteți încă eligibil pentru beneficii pentru cetățeni în vârstă. : Această linie este executată dacă valoarea „vârstei” nu este mai mare sau egală cu 65, imprimând Nu sunteți încă eligibil pentru prestații pentru cetățeni în vârstă. la terminal.
- fi : Aceasta înseamnă sfârșitul blocului interior if-else.
- altfel : Dacă condiția din declarația if exterioară este falsă, scriptul sare la blocul else.
- echo Nu sunteți încă eligibil pentru a vota. : Această linie este executată dacă valoarea „vârstei” nu este mai mare sau egală cu 18, imprimând Nu sunteți eligibil să votați încă. la terminal.
- fi : Aceasta înseamnă sfârșitul blocului exterior if-else.
Ieșire:

imbricat-dacă folosești Bash
Întrebări frecvente și câteva note despre CONDITION
Acestea sunt câteva lucruri pe care trebuie să le țin în minte când scriu condiții de testare în bash.
1. Asigurați-vă spațiile albe între paranteze și declarația de verificare/comparație reală.
De exemplu, următoarele nu vor funcționa.
if [$x==0]>Bash va raporta o eroare despre a dispărut ] .
2. Încheiați întotdeauna rândul înainte de a adăuga un nou cuvânt cheie, cum ar fi atunci.
Dacă, atunci, else, elif și fi sunt toate cuvinte cheie shell, ceea ce înseamnă că nu pot fi folosite pe aceeași linie. Pune o ; între declarația anterioară și cuvântul cheie sau începeți o nouă linie cu cuvântul cheie.
3. Pentru a folosi mai multe condiții într-o singură instrucțiune, utilizați operatori logici.
Putem folosi operatori logici AND(&&) sau logici SAU(||) pentru a folosi mai multe condiții.
De exemplu:
if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then echo 'x is greatest' fi>Aici, -ge este o prescurtare pentru mai mare sau egal cu
4. Cum se compară șirurile într-o instrucțiune Bash if?
Folosiți ` => `>operator pentru egalitatea șirurilor și ` !=`> pentru inegalitate.
De exemplu:
parseint java
if [ '$string1' = '$string2' ]; then # Code to execute if strings are equal else # Code to execute if strings are not equal fi>
5. Pot folosi expresii regulate în instrucțiunile Bash if?
Da, puteți folosi ` [[ ... ]]`> construcție pentru potrivirea mai avansată a șirurilor cu expresii regulate.
De exemplu:
if [[ '$string' =~ ^[0-9]+$ ]]; then # Code to execute if the string contains only numbers else # Code to execute if the string does not contain only numbers fi>
6. Cum se verifică dacă un fișier există într-un script Bash folosind o instrucțiune if?
Puteți folosi ` -e`> steag în stare, astfel:
if [ -e 'filename' ]; then # Code to execute if the file exists else # Code to execute if the file does not exist fi>
7. Care este sintaxa pentru o instrucțiune if-else în scriptul Bash?
Sintaxa de bază pentru an `dacă-altfel` declarația din scriptul Bash este:
if [ condition ]; then # Code to execute if condition is true else # Code to execute if condition is false fi>
8. Cum folosesc instrucțiunea elif într-un script Bash?
` elif`> declarația este utilizată pentru a verifica condiții suplimentare dacă inițialaif>condiția este falsă.
Iată un exemplu:
if [ condition1 ]; then # Code to execute if condition1 is true elif [ condition2 ]; then # Code to execute if condition2 is true else # Code to execute if none of the conditions are true fi>
9. Cum pot folosi operatori logici (ȘI, SAU) în instrucțiunile Bash if?
Puteți folosi ` -a`> pentru ȘI logic și ` -o`> pentru SAU logic.
De exemplu:
if [ condition1 -a condition2 ]; then # Code to execute if both conditions are true fi>
Concluzie
În acest articol am discutat despre scriptingul Bash, care este ca un instrument super util pentru a face computerul să facă lucrurile automat. Acest articol ne-a învățat despre declarația if în Bash, care este ca un factor de decizie în scripturi. Am învățat elementele de bază, am văzut exemple cum ar fi să verificăm dacă un număr este par sau să ne dăm seama dacă cineva poate vota și chiar am explorat lucruri mai sofisticate, cum ar fi gestionarea multor condiții sau introducerea declarațiilor if una în cealaltă. Articolul a oferit explicații clare, exemple și a răspuns la întrebări frecvente pentru a ne ajuta să folosim mai bine scripturile Bash. Principala concluzie este să fiți atenți la detalii precum spațierea și regulile speciale, astfel încât scripturile noastre să funcționeze fără probleme și să facă sarcinile mai ușor de gestionat pe computer.