Functii
Functii in Shell
Ca si in limbajul C, avem posibilitatea si in Bourne Shell sa folosim
functii definite de utilizator pentru a conferi modularitate programelor.
De asemenea, functiile se apeleaza mai rapid decat ar fi apelate alte shell
script-uri. La apelul unui alt shell script, shell-ul trebuie sa caute
pe harddisk programul si sa-l deschida inainte de a fi citit, situatie
in care se creeaza un nou proces; acest lucru nu se intampla in cazul apelului
unei functii.
O functie definita intr-un shell script exista doar in cadrul procesului
respectiv si nu poate fi exportata.
Formatul general al declararii unei functii este:
nume()
{
<secventa_de_comenzi>
}
Parantezele rotunde ce urmeaza dupa numele functiei specifica interpretorului
de comenzi ca este vorba despre o functie.
Observatie
Spre deosebire de limbajul C, parantezele ce urmeaza dupa numele functiei
nu au niciodata continut.
Apelul functiei se face prin numele ei, ca o comanda obisnuita; de
aceea, numele functiilor nu trebuie sa coincida cu numele comenzilor Unix
sau ale comenzilor Shell. O functie poate accesa variabilele setate pentru
shell-ul curent (atat cele stabilite la inceputul procesului de login cat
si cele ce se modifica pe parcurs). De regula, functiile se scriu la inceputul
shell script-ului; in caz contrar, codul functiei trebuie sa preceada apelul
sau.
Exemple de functii in Shell
-
Fie functia:
go()
{
cd $1
PS1="`pwd`>"
}
go $1
Daca numele shell script-ului este gofunc, atunci el poate fi apelat
in modul urmator:
$gofunc /home/i97aaa
iar rezultatul apelului va fi schimbarea directorului curent in /home/i97aaa
si schimbarea primului prompter in "/home/i97aaa>".
|