16.txt

Embed Size (px)

Citation preview

Structuri de control shell: if, case, for, while, until, break, continueStructuri alternative:if si caseIF-Sintaxa if listaCom then listaCom [ elif listaCom then listaCom ]*[ else listaCom ]? fiSuccesiunea de evenimente de dupa intalnirea lui if:-Se executa lista de comenzi de dupa if.Daca executa fixeaza valoarea true, atunci se executa lista de comenzi de dupa then si executia lui if se termina(se trece la instructiunea de dupa fi).-Daca exista constructii elif, atunci se executa pe rand listele de comenzi care urmeaza dupa elif, pana cand una din ele fixeaza valoarea true. Apoi se ex lista de comenzi de dupa then-ul corespunzator si executia lui if se termina. -Daca exista else, se executa lista de comenzi de dupa else si exec lui if se termina-Ex lui if se termina si se trece la comanda de dupa fiCASE case cuvant in [ cuvant ] [cuvant]* ) listaCom ;; ] + esac primul "cuvant"-cuvantul dupa care se face selectia [ ]-machete de potrivire ex. case $1 in a | A ) x="S-a tastat litera a mare sau mic" ;; b ) x="Numai litera b" [0-9] ) x="o cifra zecimala" * ) x="Nici a nici b nici o cifra" esac echo $xFORfor nume for nume in [ cuvant ]+ do do listaCom listaCom done done In prima forma, nume ia toate valorile param din linia de comanda ($1 $2..$3) din variabila $@In a doua forma, lista de cuvinte deseamneaza cuvinte simple sau specificari generice care se expandeaza la numele tuturor fisierelor din dir curent care se potrivescWHILE SI UNTILwhile listaCom until listaCom do do listaCom listaCom done doneex se termina cand listaCom intoarce ex se termina cand se intoarce un nr nenulcod de retur 0BREAK, CONTINUESintaxa: break [ n ] continue [ n ]-se refera la parasirea, respectiv reiterarea ciclurilor declarate prin constructiile for, while sau untilBreak cere parasirea corpului unui ciclu si continuarea executiei cu comanda care urmeaza ciclului.Daca parametrul n lipseste, at este parasit ciclul cel mai interior care contine comanda break.Continue reia executia corpului unui ciclu. In absenta lui n reitereaza ciclul cel mai interior, altfel este reiterat cel de-al n-lea ciclu in care e inclus.