Ce face case
Instrucțiunea case este echivalentul structurii switch din alte limbaje de programare. Este mult mai curată și lizibilă decât o înlănțuire lungă de if ... elif ... elif.
Fiecare ramură se încheie obligatoriu cu două caractere punct și virgulă (;;). Modelul * la sfârșit funcționează ca o clauză implicită (default) dacă niciun alt tipar nu s-a potrivit.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
tipar) |
Modelul căutat (poate include măști precum *, ? sau intervale [a-z]). |
tipar1 | tipar2) |
Bara verticală (pipe) permite verificarea mai multor variante pe aceeași ramură. |
;; |
Marchează sfârșitul instrucțiunilor pentru ramura curentă. |
*) |
Ramura implicită (se execută dacă nu s-a potrivit niciuna de mai sus). |
Exemple
Exemplul 1: Procesarea argumentelor unui script de control
Gestionăm comenzile start, stop și status.
ACTIUNE="start"
case "$ACTIUNE" in
start)
echo "Pornire serviciu..." ;;
stop)
echo "Oprire serviciu..." ;;
status)
echo "Verificare stare..." ;;
*)
echo "Comanda necunoscuta" ;;
esac
Rezultat
Pornire serviciu...
Greșeli frecvente
- Omiterea separatorului dublu
;;la sfârșitul unei ramuri, ceea ce provoacă o eroare de sintaxă la parsarea scriptului.