linuxtm.ro

comenzi linux, tutoriale linux

16 June 2012

case

by linuxtm

Executa o comanda conditionat; va executa lista de comenzi corespunzatoare primului model ce potriveste cuvantului.
Sintaxa
case word in [ [(] pattern [| pattern]…) command-list ;;]… esac
‘ | ‘ este folosit pentru a separa mai multe modele (patterns), si ‘ ) ‘ termina lista de modele. O lista de modele si o lista de comenzi sunt cunoscute sub numele de ‘clause’, Fiecare ‘clause’ trebuie sa se termine cu `;;’.

Cuvantul sufera expandarea de tilda, expandare de parametri, substituirea de comenzi, expandare aritmetica, si citat de stergere inainte de a fi incercata o potrivire. Fiecare model este supus expandarii de tilda, expandarii de parametri, substituirii de comenzi, si expansiunii aritmetice. Nu poate fi un numar arbitrar de clauze de caz, fiecare reziliat de către un `;;”. Primul model care se potriveste determina command-list-ul care urmeaza a fi executat.

Un exemplu in care folosim case intr-un script care poate fi utilizat pentru a descrie o caracteristica speciala a unu animal:
echo -n “Introduceti numele animalului: ”
read ANIMAL
echo -n “$ANIMAL are ”
case $ANIMAL in
cal | caine | pisica) echo -n “patru”;;
om | cangur ) echo -n “doua”;;
*) echo -n “un numar necunoscut de”;;
esac
echo ” picioare.”