Folosind instrucțiunea if...else în Bash pentru executarea condiționată a codului.
Bash (Bourne Again Shell) este un prompt de comandă shell și un limbaj de scripting în sistemele de operare GNU/Linux. Este shell-ul implicit pentru majoritatea distribuțiilor Linux.
Declarațiile condiționate sunt vitale în orice limbaj de programare, atât compilate, cât și scriptate. Ele permit utilizatorului să execute o bucată de cod bazată pe o condiție predefinită, care este unul dintre fundamentele logicii de programare. În acest articol, vom învăța cum să folosim daca...altfel
declarație condiționată în Bash.
Introducere
The daca...altfel
declarația din Bash permite utilizatorului să manipuleze fluxul de cod în funcție de condiții. Utilizatorul poate specifica blocuri de cod separate pentru a fi executate, dintre care doar unul va fi executat în final în timpul rulării, pe baza condiției corespunzătoare care este îndeplinită.
Rețineți că, pot fi specificate mai mult de două condiții, pentru care elif
poate fi folosită declarația. Utilizatorul poate oferi orice număr de condiții folosind elif
, și în sfârșit o condiție implicită folosind altfel
bloc. Să vedem mai multe despre asta în sintaxa și exemplele de mai jos.
Sintaxă generală
Sintaxa generală pentru daca...altfel
declarația în Bash este:
daca atunci altfel fi
Aici, dacă satisface, adică dacă returnează 0 (succes), atunci blocul de cod 1 este executat. Dacă condiția nu returnează 0, adică returnează o stare de eșec, atunci blocul de cod 2 este executat. The
daca...altfel
blocul se termină cu a fi
afirmație.
Pentru mai multe blocuri care corespund mai multor condiții,elif
este folosit:
daca atunci elif atunci elif atunci ... ... altfel fi
Aici, condițiile sunt verificate în ordine și este executat blocul de cod al primei condiții care returnează starea 0 (succes). De exemplu. dacă Dacă niciuna dintre condiții nu returnează starea 0, Rețineți că Pentru a executa un bloc de cod dacă o variabilă are o anumită valoare: Pentru a verifica mai multe valori: Condițiile pot fi orice comandă Linux. Blocul de cod corespunzător se va executa dacă comanda rulează cu succes. În exemplul de mai sus, din moment ce Putem cuibari și altul Acest lucru este util atunci când un set separat de condiții trebuie verificat odată ce o condiție inițială este îndeplinită. De exemplu, următorul cod încearcă să instaleze un software de server web: Codul verifică mai întâi dacă Nginx este deja instalat în sistem. Dacă este, afișează doar un mesaj și iese. Dacă nu este, încearcă să instaleze Nginx. Dacă din anumite motive, Nginx nu a putut fi instalat în sistem din pachet, încearcă să instaleze Apache2. Dacă chiar și Apache2 dă eroare în timpul instalării, se iese afișând un mesaj că nu a putut fi instalat niciun software. Într-un mod similar, un bloc imbricat poate fi utilizat în interiorul unui Similar cu orice cod Bash, De asemenea, utilizatorul poate salva acest cod într-un fișier script și poate executa fișierul script. The Pentru a acorda permisiuni de execuție pentru acest fișier, rulați: În cele din urmă, pentru a executa fișierul, rulați: Similar oricărui limbaj de programare, returnează starea diferită de zero (eșec), apoi
este bifat. Dacă
returnează starea 0,
este executat. După aceasta, alte condiții nu sunt verificate și execuția codului continuă până la codul de după
fi
afirmație. în blocul else se execută. Rețineți că blocul else este opțional. Dacă nu este îndeplinită nicio condiție, precum și nu
altfel
bloc este specificat, niciun bloc de cod condiționat nu va rula, iar execuția codului va continua până la cod după fi
declarație, așa cum se arată în graficul de mai jos.atunci
declarația trebuie folosită numai după dacă
și elif
declarații și nu sunt necesare după altfel
afirmație.Exemple
x=0 dacă [ $x -eq 0 ] atunci echo „Valoarea lui X este 0” altfel echo „Valoarea lui X nu este 0” fi
x=2 if [ $x -eq 0 ] then echo "Valoarea lui X este 0" elif [ $x -eq 1 ] then echo "Valoarea lui X este 1" elif [ $x -eq 2 ] apoi echo "Valoarea lui X este 2" altfel echo "Valoarea lui X nu este 0" fi
dacă npm -v atunci echo "NPM prezent în sistem" altfel sudo apt install npm fi
npm
nu a fost instalat în sistem, comanda npm -v
a returnat o stare diferită de zero. Prin urmare, execuția codului a intrat în altfel
bloc, unde instalăm npm folosind apt
manager de pachete. După cum putem vedea, mi-a cerut să introduc parola și am început instalarea npm.daca...altfel
bloc în interiorul unui dacă
, altfel
sau elif
bloc:x=0 y=1 dacă [ $x -eq 0 ] atunci echo "X este 0" dacă [ $y -eq 1 ] atunci echo "Y este 1" altfel echo "Y nu este 1" fi altfel echo "X este nu 0" fi
dacă nginx -v atunci echo „NGINX este deja instalat”. altfel, dacă sudo apt install nginx, atunci ecou „Instalare NGINX reușită”. elif sudo apt install apache2 then echo "APACHE2 installation success." else echo „Nu se poate instala niciun software web”. fi
elif
bloc de asemenea.Executarea
daca...altfel
: Scripturi și linie de comandădaca...altfel
instrucțiunea poate fi utilizată în shell Bash direct sau dintr-un fișier script shell executabil. Odată ce interpretul Bash găsește un dacă
, altfel
sau elif
declarație, continuă shell-ul pentru a permite utilizatorului să intre în blocul de cod.#!/bin/bash
la început specifică interpretul care urmează să fie utilizat atunci când fișierul este executat. Deși Bash este cel mai des folosit shell în zilele noastre, unii utilizatori preferă shell-uri precum zsh, care ar trebui specificate în locul bash la începutul acestui fișier.chmod +x test.sh
./test.sh
Concluzie
daca...altfel
declarația este o caracteristică fundamentală a lui Bash. Învățarea utilizării acestuia este foarte importantă în scrierea scripturilor de bază, precum și a celor avansate.