Ce face Funcții în Bash
Funcțiile în Bash permit modularizarea codului și evitarea repetițiilor. O funcție se comportă ca o mică comandă internă: primește argumente prin variabilele poziționale $1, $2, numărul de argumente prin $# și toate argumentele prin $@.
Variabilele declarate în interiorul unei funcții sunt globale în mod implicit! Pentru a nu suprascrie accidental variabile din restul scriptului, este esențial să folosești cuvântul cheie local.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
$1, $2, ... |
Argumentele pasate funcției la apelare. |
$# |
Numărul total de parametri primiți de funcție. |
$@ |
Toate argumentele primite, fiecare ca șir separat protejat prin ghilimele. |
local VAR=val |
Limitează vizibilitatea variabilei exclusiv la corpul funcției curente. |
return N |
Încheie funcția și returnează un cod numeric de ieșire (0 pentru succes, 1-255 pentru eroare). |
Exemple
Exemplul 1: Funcție de jurnalizare cu dată și oră
Creăm o funcție reutilizabilă de logare a mesajelor.
log_mesaj() {
local nivel="$1"
local text="$2"
echo "[$nivel] $text"
}
log_mesaj "INFO" "Aplicatia s-a conectat la baza de date"
log_mesaj "WARN" "Spatiul pe disc depaseste 80%"
Rezultat
[INFO] Aplicatia s-a conectat la baza de date
[WARN] Spatiul pe disc depaseste 80%
Greșeli frecvente
- Încercarea de a returna un text folosind
return "rezultat": comandareturnpoate returna DOAR coduri numerice de la 0 la 255. Pentru a returna text, funcția trebuie să foloseascăecho "text", iar apelantul capturează rezultatul cuREZ=$(functie). - Omiterea cuvântului
local, ceea ce duce la suprascrierea variabilelor globale din greșeală.
Comenzi înrudite
Variabile în Bash: Declararea, atribuirea, valorile implicite și expandarea corectă a variabilelor în Bash.exit: Încheie execuția shell-ului sau a scriptului curent și transmite un cod numeric de stare sistemului.