Cu o instrucțiune if, care este un tip de instrucțiune condiționată, puteți efectua diferite acțiuni în funcție de condițiile specificate. Ea dă efectiv capacitatea sistemului de a lua decizii.
Un exemplu de formă mai simplă a unei declarații if-ar fi:
count = 5 dacă $ count == 5 apoi echo "count" fi
În acest exemplu, variabila "count" este utilizată pentru a specifica o condiție care este folosită ca parte a instrucțiunii if. Înainte de executarea instrucțiunii if, variabilei "count" i se atribuie valoarea "5". Instrucțiunea if-verifică apoi dacă valoarea "count" este "5". În acest caz, declarația dintre cuvintele cheie "apoi" și "fi" este executată, în caz contrar orice declarații care urmează executării if-statement. Cuvântul "fi" este "dacă" scris înapoi. Limba de scripting bash utilizează această convenție pentru a marca sfârșitul unei expresii complexe, o astfel de declarație if-statement sau case-statements.
Instrucțiunea "ecou" imprimă argumentul său, în acest caz, valoarea variabilei "count", în fereastra terminalului. Indentarea codului între cuvintele cheie ale instrucțiunii if îmbunătățește lizibilitatea, dar nu este necesară.
Dacă aveți o situație în care o bucată de cod ar trebui executată numai dacă o condiție nu este adevărată, puteți folosi cuvântul cheie "altceva" într-o instrucțiune if, ca în acest exemplu:
count = 5 dacă $ count == 5 apoi echo "count count" alt echo "count nu este 5" fi
Dacă condiția "$ count == 5" este adevărată, sistemul imprimă valoarea variabilei "count", altfel se imprimă șirul "Count not 5".
Dacă doriți să faceți diferența între mai multe condiții, puteți utiliza cuvântul cheie "elif", care este derivat din "else if", ca în acest exemplu:
dacă $ count == 5 atunci echo "count is five" elif $ count == 6 apoi echo "count is six" altceva echo "none of the above" fi
Dacă "count" este "5", sistemul imprimă "count are five". Dacă "count" nu este "5", ci "6", sistemul imprimă "Count is six". Dacă nu este nici "5", nici "6", sistemul imprimă "niciuna dintre cele de mai sus".
Așa cum probabil ați ghicit, puteți avea orice număr de clauze "elif". Un exemplu cu multiple condiții "elif" ar fi:
dacă $ count == 5 atunci echo "count is five" elif $ count == 6 atunci echo "count is six" elif $ count == 7 = 8 apoi echo "count este opt" elif $ count == 9 apoi echo "count is nine" altceva echo "none of the above" fi
O modalitate mai compactă de a scrie astfel de afirmații cu condiții multiple este metoda de caz. Funcționează similar cu instrucțiunea if cu mai multe clauze "elif", dar este mai concisă. De exemplu, codul de mai sus poate fi re-scris cu instrucțiunea "caz" după cum urmează:
caz "$ count" în 5) echo "count are five"; 6) ecoul "numărătoarea este șase"; 7) ecoul "numărătoarea este șapte"; 8) echo "numărătoarea este opt"; 9) ecoul "numărătoarea este nouă"; *) ecou "niciunul dintre cele de mai sus" esac
Dacă declarațiile-if-sunt adesea folosite în interiorul for-buclelor sau while-buclelor ca în acest exemplu:
count = 1 done = 0 în timp ce $ count -le 9 face somn 1 ((count ++)) dacă $ count == 5 continua fi echo "$ count"
Puteți, de asemenea, să aveți imbricate în cazul declarațiilor. Cel mai simplu imbricat dacă declarația are forma: dacă … atunci … altceva … dacă … atunci … fi … fi. Cu toate acestea, dacă declarația poate fi imbricată cu complexitate arbitrară.
Consultați și modul de trecere a argumentelor într-un script bash, care arată modul de utilizare a condiționărilor pentru procesarea parametrilor parcurși de la linia de comandă.
Cochilia bash oferă alte construcții de programare, cum ar fi for-bucle, bucle în timp ce și expresii aritmetice.