Documente Academic
Documente Profesional
Documente Cultură
5 Laborator 5 SO
5 Laborator 5 SO
5 Laborator 5 SO
1. INSTRUCTIUNI DE CONTROL
1.1. CICLAREA
Limbajul de programare Shell implementeaza ciclarea, adica executarea repetata a unei
comenzi (sau secvente de comenzi) , pina la indeplinirea unei conditii. Conditia este testata
fie la inceputul ciclului (instructiunea while) sau la sfirsitul ciclului (instructiunea until).
Instructiunea while -ciclul cu test initial- are sintaxa:
while <lista-1>
do
<lista-2>
(1)
done
Secventa de instructiuni <lista-2> se va executa pina cind lista de istructiuni <lista1> intoarce 0, adica succes (adevarat). Se iese din ciclu cu valoarea 1, adica esec (false),
intoarsa de <lista-1>.
While, do, done, sunt cuvinte cheie care marcheaza elementele structurii.
Instructiunea until - ciclul cu test final - are sintaxa:
until <lista-1>
do
<lista-2>
(2)
done
Secventa de instructiuni <lista-2> se va executa pina cind lista de istructiuni <lista1> intoarce 1, adica esec (fals). Se iese din ciclu cu valoarea 0, adica esec (false), intoarsa de
<lista-1>.
Until, do, done, sunt cuvinte cheie care marcheaza elementele structurii.
Limbajul de programare Shell pune la dispozitie si o instructiune de ciclare cu contor:
for <variabila> [ in <val-1>, <val-2> ..]
do
<lista>
(3)
done
Se executa in mod repetat lista> pina cind <variabila> ia succesiv toate valorile
<val-i>. In cazul in care lipseste lista de valori <variabila> va lua succesiv valorile
parametrilor procedurii.
1.2. SUBSTITUTIA COMENZILOR
Atunci cind intr-un program Shell o comanda este incadrata de caracterul ` (accent grav), ea
este executata de Shell, iar rezultatul ei va substitui locul comenzii in program.
1/5
expr <exp>
shift
break
continue
eval arg
exit n
2/5
3/5
2. APLICATII
I. Sa se studieze paginile de manual ale comenzilor test, read, expr, shift, eval, break
continue, exit.
II. Sa se rezolve exercitiile urmatoare:
1. Sa se implementeze si sa se testeze exemplele din acest referat de laborator. Sa se arate
(acolo unde este cazul) ce este afisat pe ecran in urma executiei fiecarui script, in functie de
parametrii transmisi prin linia de comanda.
2. Sa se scrie un script Shell numit fifi care sa contina exemplul 4 din referatul de laborator.
Sa se testeze folosind 4 parametri de tip sir de caractere. Sa se modifice acest program astfel
incit el sa afiseze la fiecare iteratie numai un singur parametru.
3. Sa se scrie un script shell cu o bucla while infinita (while true), care primeste 5 argumente.
Programul sa afiseze argumentele primite, cite unul la o iteratie, apoi sa se opreasca.
(Indicatie: while true, continue, exit)
4. Sa se scrie un script Shell care primeste 5 parametri si ii afiseaza in ordinea inversa tastarii
lor: ultimul, penultimul, etc. (Indicatie: while true, if, break).
5. Sa se arate care este rezultatul scriptului gigel din exemplul 6. Sa se scrie un script Shell
care afiseaza acelasi lucru, dar cu informatii suplimentare: drepturi de acces, lungime, data
crearii. Indicatie: vezi si exemplul 4.
6. Sa se creeze mai multe fisiere cu extensia .c (daca nu exsita deja in directorul curent). Sa se
scrie un script Shell continind o singura comanda care sa afiseze toate fisierele .c din director
(scriptul va avea acelasi efect cu comanda ls -l *.c). Indicatie: man bash, capitolul despre
parametri.
4/5
5/5