M3.U2.10 Rezumat
Prin utilizarea structurilor alternative şi repetitive, Bash se apropie de un
limbaj de programare. Utilizarea acestor structuri este posibilă, deoarece Bash
recunoaşte expresiile logice, specifice Linux pe care le poate construi şi testa.
Specific Linux, este şi faptul că o valoare de test se poate obŃine şi prin execuŃia
unei liste de comenzi şi considerarea codului de retur al ultimei comenzi executate.
Structura alternativă if, prin utilizarea construcŃiilor elif este chiar
mai complexă decât cea întâlnită în cadrul limbajelor evoluate. Astfel, pe varianta
false a valorii logice generate în linia de comandă a lui if, se pot executa o serie
întreagă de alte acŃiuni corespunzătoare altor valori logice. Structura alternativă
case foloseşte o variabilă discriminant care se compară pe rând cu valorile
specificate în nişte liste şi, în momentul identificării unei corespondenŃe, se
execută acŃiunea asociată acelei liste si execuŃia lui case se termină. Valorile
specificate într-o listă pot fi exprimate şi ca expresii regulate.
Structurile repetitive se aseamănă oarecum cu cele din limbajele evoluate,
dar au şi elemente specifice Linux. Şi aici întâlnim generarea unei valori logice prin
execuŃia unei liste de comenzi. De asemenea, există posibilitatea testării numărului
de argumente din linia de comandă, pe baza căreia se poate stabili numărul de
iteraŃii al structurii respective. Bash admite şi o structură for asemănătoare celei
utilizate de limbajul C. În cadrul structurilor repetitive, se pot folosi comenzi prin
care se translatează argumentele transmise, se poate ieşi dintr-un număr de cicluri
imbricate sau se poate sări peste un număr de iteraŃii..
Conceptul de funcŃie este un element important care apropie Bash de un
limbaj de programare evoluat. Şi aici întâlnim elemente specifice, cum este faptul
că nu este necesară declararea parametrilor în antetul funcŃiei, folosindu-se
parametri formali care au o notaŃie specifică. Functiile pot avea oricâŃi parametri,
pot fi recursive şi imbricate şi sunt apelabile de oriunde; ele pot fi apelate numai
după ce interpretorul le-a întâlnit definiŃia în cursul execuŃiei scriptului. De
asemenea, este necesară unicitatea numelui din interiorul script-ului.