Cum să stăpânești logica condiționată în Bash

Cum Sa Stapanesti Logica Conditionata In Bash



Utilizarea logicii condiționale este o parte foarte esențială a oricărui limbaj de programare. Logica condițională poate fi implementată în Bash în diferite moduri pentru a rezolva problemele de programare. Metodele de utilizare a logicii condiționale în Bash prin diferitele tipuri de instrucțiuni „if” și „case” pentru a compara șirul și valorile numerice, verificarea conținutului variabilei, verificarea existenței fișierului sau directorului etc. sunt prezentate în acest tutorial .

Lista de continut:

  1. Utilizarea Declarației „Dacă”.
  2. Utilizarea declarației „Dacă altfel”.
  3. Utilizarea declarației „If-Elif-Else”.
  4. Utilizarea instrucțiunii „Dacă” pentru a verifica o variabilă goală
  5. Utilizarea instrucțiunii „Dacă” cu operator logic
  6. Utilizarea instrucțiunilor „If” imbricate
  7. Utilizarea instrucțiunii „Dacă” pentru a verifica existența fișierului
  8. Utilizarea declarației „Dacă” pentru a verifica existența directorului
  9. Utilizarea declarației „Dacă” cu Regex
  10. Utilizarea Declarației „Caz”.

Utilizarea Declarației „Dacă”.

Acest exemplu arată utilizarea simplă a declarației „dacă” în Bash. Pot fi utilizate șase tipuri de operatori de comparare pentru a compara valorile numerice din Bash. Acestea sunt „-eq” (egal), „-ne” (nu este egal), „-le” (mai mic decât egal), „-ge” (mai mare decât egal), „-lt” (mai mic decât) și „ -gt” (mai mare decât). Utilizările „-lt” și „-eq” sunt afișate în următorul script, indiferent dacă numărul este mai mic de 99 sau nu a fost verificat folosind operatorul „-lt”. Numărul este par sau impar și este verificat de operatorul „-eq”.







#!/bin/bash

#Atribuiți o valoare numerică

( ( număr = cincizeci ) )

#Verificați valoarea numerică folosind instrucțiunea „dacă”.

dacă [ $numar -lt 99 ]

apoi

ecou „Numărul este valid”.

fi

#Verificați dacă numărul este par sau nu

dacă [ $ ( ( $numar % 2 ) ) -echivalentul 0 ]

apoi

ecou „Numărul este par”.

fi

Ieșire :



Următoarea ieșire apare după executarea scriptului anterior:



  p1





Du-te sus

Utilizarea declarației „Dacă altfel”.

Utilizarea declarației „if-else” este prezentată în următorul script. O valoare șir este preluată de la utilizator și verifică dacă valoarea este „ALBASTRĂ” sau nu folosind instrucțiunea „if-else”.



#!/bin/bash

#Ia o valoare șir de la utilizator

citit -p „Introduceți culoarea preferată:” culoare

#Verificați valoarea șirului folosind instrucțiunea „if-else”.

dacă [ ${culoare^^} == 'ALBASTRU' ]

apoi

ecou „Bine, culoarea albastră este disponibilă.”

altfel

ecou ' $culoare nu este disponibil.'

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului anterior dacă „roșu” este luat ca intrare:

  p2-1

Următoarea ieșire apare după executarea scriptului anterior dacă „albastru” este luat ca intrare:

  p2-2

Du-te sus

Utilizarea declarației „If-Elif-Else”.

Utilizarea declarației „if-elif-else” este prezentată în următorul script. Un număr este luat de la utilizator și verificat cu diferite valori până când se găsește orice potrivire. Dacă se găsește vreo potrivire, mesajul corespunzător este tipărit. Dacă nu se găsește nicio potrivire, mesajul implicit este tipărit.

#!/bin/bash

#Preluați valoarea id-ului de la utilizator

citit -p „Introduceți numărul dvs. de serie:” serial

#Verificați valoarea de intrare folosind instrucțiunea „if-elif-else”.

dacă [ $serial == '4523' ]

apoi

ecou „Sunteți selectat în grupa A”.

Elif [ $serial == '8723' ]

apoi

ecou „Sunteți selectat în grupa B”.

Elif [ $serial == „3412” ]

apoi

ecou „Sunteți selectat în grupa C”.

altfel

ecou 'Nu esti selectat' .

fi

Ieșire:

Următoarea ieșire apare după executarea scriptului cu valoarea 8723:

  p3-1

Următoarea ieșire apare după executarea scriptului cu valoarea 9078:

  p3-2

Du-te sus

Utilizarea instrucțiunii „Dacă” pentru a verifica o variabilă goală

Metoda de verificare dacă o variabilă este goală, fără a folosi o instrucțiune „dacă” este prezentată în următorul script. Opțiunea „-z” este utilizată în declarația „if” pentru a face această sarcină.

#!/bin/bash

#Preluați valoarea id-ului de la utilizator

citit -p „Introduceți numărul dvs. de serie:” serial

#Verificați dacă variabila este goală sau nu

dacă [ ! -Cu $serial ]

apoi

#Verificați valoarea de intrare folosind instrucțiunea „if-elif-else”.

dacă [ $serial == '690' ]

apoi

ecou 'Ești selectat în echipa-1.'

Elif [ $serial == '450' ]

apoi

ecou 'Ești selectat în echipa-2.'

altfel

ecou 'Nu esti selectat' .

fi

altfel

ecou „Nu este dat niciun număr de serie”.

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului cu valoarea 690:

  p4-1

Următoarea ieșire apare după executarea scriptului dacă nu este luată nicio valoare de intrare:

  p4-2

Du-te sus

Utilizarea instrucțiunii „Dacă” cu operatori logici

Trei tipuri de operatori logici pot fi utilizați în instrucțiunea condiționată Bash. Acestea sunt SAU logice (||), ȘI logice (&&) și NU logice (!). O valoare de cod este preluată de la utilizator. Dacă valoarea de intrare nu este goală, valoarea este verificată cu două valori de cod folosind OR logic. Dacă valoarea se potrivește cu orice cod, mesajul corespunzător este tipărit. Dacă nu este găsit niciun cod care să corespundă, mesajul implicit este tipărit.

#!/bin/bash

#Ia codul cursului de la utilizator

citit -p „Introduceți codul cursului:” cod

#Verificați dacă variabila este goală sau nu

dacă [ ! -Cu $cod ]

apoi

#Verificați valoarea de intrare folosind instrucțiunea „if-elif-else”.

dacă [ [ $cod == „CSE-106” || $cod == „CSE-108” ] ]

apoi

ecou „Curs CSE”.

Elif [ [ $cod == „BBA-203” || $cod == „BBA-202” ] ]

apoi

ecou „Curs BBA”.

altfel

ecou „Cod de curs nevalid”.

fi

altfel

ecou „Nu este dat niciun cod de curs”.

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului cu valoarea de intrare „CSE-108”:

  p5-1

Următoarea ieșire apare după executarea scriptului cu valoarea de intrare „BBA-56”:

  p5-2

Du-te sus

Utilizarea instrucțiunilor „If” imbricate

Când o condiție „dacă” este utilizată în interiorul unei alte condiții „dacă”, se numește o declarație „dacă” imbricată. Metoda de utilizare a „dacă” imbricat este prezentată în următorul script. Două valori de marcare sunt preluate de la utilizator. Dacă valorile de intrare sunt nevide, prima condiție „dacă” verifică dacă valoarea „$theory” este mai mare sau egală cu 60 sau nu. Dacă prima condiție „dacă” returnează „adevărat”, a doua condiție „dacă” verifică dacă valoarea „$lab” este mai mare sau egală cu 50 sau nu. Dacă a doua condiție „dacă” returnează și „adevărat”, este tipărit un mesaj de succes. În caz contrar, este tipărit un mesaj de eroare.

#!/bin/bash

#Ia nota de teorie

citit -p „Introduceți nota teoretică:” teorie

#Ia nota de laborator

citit -p „Introduceți marca de laborator:” laborator

#Verificați dacă variabilele sunt goale sau nu

dacă [ [ ! -Cu $teorie && ! -Cu $lab ] ]

apoi

#Verificați valorile de intrare folosind o instrucțiune „dacă” imbricată

dacă [ $teorie -GE 60 ]

apoi

dacă [ $lab -GE cincizeci ]

apoi

ecou — Ai trecut.

altfel

ecou 'Ai eșuat.'

fi

altfel

ecou 'Ai eșuat.'

fi

altfel

ecou „Nota de teorie sau de laborator este goală”.

fi

Ieșire :

Următoarea ieșire apare dacă ambele sau una dintre valorile de intrare sunt goale:

  p6-1

Următorul rezultat apare dacă 78 este luat ca note de teorie și 45 este luat ca note de laborator. Aici, a doua condiție „dacă” returnează „fals”:

  p6-2

Următoarea ieșire apare dacă 67 este luat ca note de teorie și 56 este luat ca note de laborator. Aici, ambele condiții „dacă” revin „adevărat”:

  p6-3

Următorul rezultat apare dacă 50 este luat ca note de teorie și 80 este luat ca note de laborator. Aici, prima condiție „dacă” returnează „fals”:

  p6-4

Du-te sus

Utilizarea instrucțiunii „Dacă” pentru a verifica existența fișierului

Existența fișierului poate fi verificată de scriptul bash în două moduri. Unul folosește operatorul „-f” cu paranteze „[]”. Un altul este folosirea comenzii „test” și a operatorului „-f”. Se ia un nume de fișier și verifică existența fișierului folosind condiția „dacă” cu operatorul „-f”. Apoi, se ia un alt nume de fișier și se verifică existența fișierului folosind instrucțiunea „if” cu comanda „test” și operatorul „-f”.

#!/bin/bash

#Ia numele fișierului

citit -p „Introduceți un nume de fișier:” fn1

#Verificați dacă fișierul există sau nu fără a utiliza `test`

dacă [ -f $fn1 ]

apoi

ecou ' $fn1 fisierul exista.'

altfel

ecou ' $fn1 Fisierul nu exista.'

fi

#Adăugați o linie nouă

ecou

#Ia alt nume de fișier

citit -p „Introduceți un alt nume de fișier:” fn2

#Verificați dacă fișierul există sau nu folosind `test`

dacă Test -f $fn2 ; apoi

ecou ' $fn2 fisierul exista.'

#Verificați dacă fișierul este gol sau nu folosind `test`

dacă Test -Cu $fn2 ; apoi

ecou ' $fn2 fișierul este gol.”

altfel

ecou ' $fn2 fișierul nu este gol.”

fi

altfel

ecou ' $fn2 Fisierul nu exista.'

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului luând „test.txt” și „testing.txt” drept nume de fișier. Conform rezultatelor, ambele fișiere există în locația curentă, iar fișierul „testing.txt” este gol:

  p7-1

Următoarea ieșire apare după executarea scriptului luând „f1.txt” și „test.txt” drept nume de fișier. Conform rezultatelor, fișierul „f1.txt” nu există în locația curentă și fișierul „test.txt” nu este gol:

  p7-2

Du-te sus

Utilizarea declarației „Dacă” pentru a verifica existența directorului

Existența directorului poate fi verificată de scriptul Bash în două moduri, precum fișierul. Unul folosește operatorul „-d” cu paranteze „[]”. Un altul este folosirea comenzii „test” și a operatorului „-d”. Se ia un nume de director și se verifică existența directorului folosind condiția „dacă” cu operatorul „-d”. Apoi, se ia un alt nume de director și se verifică existența fișierului folosind instrucțiunea „if” cu comanda „test” și operatorul „-d”.

#!/bin/bash

#Ia un nume de director

citit -p „Introduceți un nume de director:” tu1

#Verificați dacă directorul există sau nu fără a utiliza `test`

dacă [ -d $dir1 ]

apoi

ecou ' $dir1 directorul există.'

altfel

ecou ' $dir1 directorul nu există.'

fi

#Adăugați o linie nouă

ecou

#Ia alt nume de director

citit -p „Introduceți un alt nume de director:” dir2

#Verificați dacă fișierul există sau nu folosind `test`

dacă Test -d $dir2

apoi

ecou ' $dir2 directorul există.'

altfel

ecou ' $dir2 directorul nu există.'

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului cu numele directorului „temp” și „fișiere”. Conform rezultatelor, ambele directoare există în locația curentă. Apoi, comanda „ls” este executată pentru a verifica conținutul directoarelor:

  p8-1

Următoarea ieșire apare după executarea scriptului cu numele directorului „testare” și „nou”. Conform rezultatelor, ambele directoare nu există în locația curentă. Apoi, rezultatul comenzii „ls” arată că ambele directoare nu există:

  p8-2

Du-te sus

Utilizarea declarației „Dacă” cu Regex

Următorul script arată metoda de validare a datelor de intrare folosind o instrucțiune „dacă” cu expresia regex. Aici, două valori de intrare sunt preluate de la utilizator și sunt stocate în variabilele „$bookname” și „$bookprice”. Condiția „dacă” este utilizată în script pentru a verifica dacă variabila „$bookname” conține toate caracterele alfabetice, iar „$bookprice” conține un număr.

#!/bin/bash

#Ia de la utilizator numele cărții și prețul

ecou -n „Introduceți numele cărții:”

citit nume de carte

ecou -n „Introduceți prețul cărții:”

citit prețul cărții

#Verificați că numele cărții conține doar alfabetul

dacă ! [ [ ' $bookname ' =~ [ A-Za-z ] ] ] ; apoi

ecou „Numele cărții este nevalid”.

altfel

ecou „Numele cărții este valid”.

fi

#Verificați prețul cărții conține doar cifre

dacă ! [ [ ' $bookprice ' =~ [ 0 - 9 ] ] ] ; apoi

ecou „Prețul cărții poate conține doar cifre.”

altfel

ecou „Prețul cărții este valabil.”

fi

Ieșire :

Următoarea ieșire apare după executarea scriptului cu valorile de intrare ale „Bash Programming” ca nume de carte și 78 ca preț de carte:

  p9-1

Următoarea ieșire apare după executarea scriptului cu valorile de intrare de 90 ca nume de carte și „Bash” ca preț de carte:

  p9-2

Du-te sus

Utilizarea Declarației „Caz”.

Declarația „case” este alternativa instrucțiunii „if-elif-else”, dar toate sarcinile instrucțiunii „if-elif-else” nu pot fi efectuate folosind instrucțiunea „case”. Utilizarea simplă a declarației „case” este prezentată în scriptul următor. O valoare numerică este luată de la utilizator ca valoare a lunii curente. Apoi, luna corespunzătoare este tipărită dacă se găsește vreo valoare potrivită în declarația „case”. În caz contrar, mesajul implicit este tipărit.

#!/bin/bash

#Luați în număr valoarea lunii curente

citit -p „Introduceți luna de astăzi la număr:” b_lună

#Tipărește textul înainte de a tipări numele lunii

ecou -n „Numele lunii curente este”

#Aflați și tipăriți numele lunii potrivite pe baza intrării

caz $b_lună în

1 | 01 ) ecou 'Ianuarie.' ;;

2 | 02 ) ecou 'Februarie.' ;;

3 | 03 ) ecou 'Martie.' ;;

4 | 04 ) ecou 'Aprilie.' ;;

5 | 05 ) ecou 'Mai.' ;;

6 | 06 ) ecou 'Iunie.' ;;

7 | 07 ) ecou 'Iulie.' ;;

8 | 08 ) ecou 'August.' ;;

9 | 09 ) ecou 'Septembrie.' ;;

10 ) ecou 'Octombrie.' ;;

unsprezece ) ecou 'Noiembrie.' ;;

12 ) ecou 'Decembrie.' ;;

* ) ecou 'nu a fost găsit.' ;;

esac

Ieșire :

Următoarea ieșire apare după executarea scriptului cu valoarea 6:

  p10-1

Următoarea ieșire apare după executarea scriptului cu valoarea 09:


  p10-2

Următoarea ieșire apare după executarea scriptului cu valoarea 14:

  p10-3

Du-te sus

Concluzie

Diferite utilizări ale logicii condiționate folosind instrucțiunile „dacă” și „caz” sunt prezentate în cele 10 exemple ale acestui tutorial. Conceptul de utilizare a logicii condiționate în Bash va fi șters pentru noii utilizatori Bash după citirea acestui tutorial.