Skip to main content

Ghid de incepatori pentru BASH - compararea lucrurilor

???? Programare in Python: Tutorial de Programare pentru Incepatori | Programare in Python #2 (Aprilie 2025)

???? Programare in Python: Tutorial de Programare pentru Incepatori | Programare in Python #2 (Aprilie 2025)
Anonim
01 din 08

Ghid de incepatori pentru BASH - compararea lucrurilor

În partea anterioară a tutorialului BASH am analizat declarațiile condiționate.

Acest ghid a fost foarte lung, dar într-adevăr a arătat doar cum să controleze fluxul de logică. Acest ghid prezintă diferitele moduri în care puteți compara variabilele.

Imaginea de mai sus arată primul exemplu din ghidul săptămânii:

#! / Bin / bashnume1 = "gary"name2 = "bob"dacă "$ name1" = "$ name2"atunci echo "numele se potrivesc"altfel echo "numele nu se potrivesc"Fi

În scriptul de mai sus am definit două variabile numite name1 și name2 și le-am atribuit valorile "gary" și "bob". Întrucât variabilele sunt cuprinse între ghilimele, ele sunt numite variabile de șir care devin mai relevante pe măsură ce tutorialul continuă.

Tot scriptul face este compararea valorii $ name1 și $ name2 și dacă se potrivesc ieșirea șirul "names match" și dacă acestea nu trimit stringul "numele nu se potrivesc".

Marcajele în jurul variabilelor $ name1 și $ name2 sunt importante deoarece, în cazul în care valoarea acestora nu a fost stabilită, scenariul va continua să funcționeze.

De exemplu, dacă $ name1 nu a fost setat niciodată, atunci ați compară "" cu "bob". Fără ghilimele, ați fi lăsat cu = "bob" care în mod evident nu reușește.

De asemenea, puteți folosi notația! = Pentru a defini nu este egală cu următoarea:

dacă "$ name1"! = "$ name2" 02 din 08

Ghid de incepatori pentru BASH - Compararea sirurilor

În exemplul de mai sus, testul compară aceleași două șiruri și întreabă dacă Gary vine înaintea bob-ului în alfabet?

În mod clar răspunsul este nu.

Scriptul introduce mai puțin decât operatorul (<). Deoarece operatorul mai puțin decât operatorul este folosit și pentru redirecționare, trebuie să-l scape cu o slash () pentru ca aceasta să însemne mai puțin decât de aceea în scriptul de mai sus am comparat "$ name1" <"$ name2".

Opusul mai mic decât este, evident, mai mare decât. În loc de a utiliza <utilizează >.

De exemplu

dacă "$ nume1" > "$ name2" 03 din 08

Ghid de incepatori pentru BASH - Compararea sirurilor

Dacă doriți să testați dacă o variabilă are o valoare, puteți folosi următorul test:

dacă -n $ name2

În scriptul de mai sus am testat dacă $ name2 a dat o valoare și dacă nu apare mesajul "Nu există nici un bob, nu a fost niciodată un bob apare".

04 din 08

Ghid de incepatori pentru BASH - Compararea sirurilor

Pe diapozitivul trecut am acoperit dacă o variabilă a fost setată sau nu. Uneori, deși s-ar fi putut stabili o variabilă, dar s-ar putea să nu aibă o valoare reală.

De exemplu:

nume1 = ""

Pentru a testa dacă o variabilă are o valoare sau nu (adică are o lungime de zero), utilizați -z după cum urmează:

dacă -z $ name1

În scriptul de mai sus am setat $ name1 la un șir de lungime zero și apoi l-am comparat folosind -z. Dacă $ nume1 este zero în lungime mesajul "gary a ieșit pentru seara" va fi afișat.

05 din 08

Ghid de incepatori pentru BASH - compararea numerelor

Până acum, toate comparațiile au fost făcute pentru șiruri de caractere. Dar compararea numerelor?

Scriptul de mai sus arată un exemplu de comparare a două numere:

#! / Bin / basha = 4b = 5dacă $ a = $ batunci echo "4 = 5"altfel echo "4 nu este egal cu 5"Fi

Pentru a seta o variabilă să fie un număr, pur și simplu setați-o fără ghilimele. Apoi puteți compara numerele cu un semn de egalitate.

Prefer, totuși, să folosesc următorul operator pentru a compara două numere:

Dacă $ a -eq $ b 06 din 08

Ghid de incepatori pentru BASH - compararea numerelor

Dacă doriți să comparați dacă un număr este mai mic decât un alt număr, puteți utiliza mai puțin decât operatorul (<). Ca și în cazul șirurilor de caractere, trebuie să scăpați mai puțin de operatorul cu o bară. ( <).

O modalitate mai bună de comparare a numerelor este utilizarea următoarei notații:

  • Mai puțin decât -lt
  • Mai puțin sau egal cu -le
  • Mai mare decât -gt
  • Mai mare sau egal cu -ge

De exemplu:

dacă $ a -lt $ bdacă $ a -le $ bdacă $ a -ge $ bdacă $ a -gt $ b 07 din 08

Ghid de incepatori pentru BASH - compararea numerelor

În cele din urmă, pentru acest ghid, dacă doriți să testați dacă două numere sunt diferite, puteți utiliza fie mai puțin decât operatorii mai mari decât operatorii împreună (<>) sau -ne, după cum urmează:

dacă $ a <> $ bdacă $ a -ne $ b 08 din 08

Ghid de incepatori pentru BASH - Operatori de comparatie - Rezumat

Dacă ați pierdut primele trei părți ale acestui ghid, le puteți găsi făcând clic pe următoarele linkuri:

  • Salut Lume
  • Parametrii de intrare
  • Condiții și variabile

În următoarea parte a ghidului voi acoperi aritmetica.