Variabile în Bash în Linux / Bash

Scripting Bash Bash 2.0+

Declararea, atribuirea, valorile implicite și expandarea corectă a variabilelor în Bash.

Sintaxă comandă
NUME=valoare
echo "$NUME"

Ce face Variabile în Bash

În Bash, o variabilă se declară simplu prin NUME=valoare, FĂRĂ niciun spațiu în jurul semnului egal (=).

Pentru a citi valoarea unei variabile se folosește prefixul $ (de exemplu $NUME sau ${NUME}). Acoladele permit concatenarea curată (ex. ${VAR}_backup) și operațiuni avansate de manipulare a textului sau valori implicite (${VAR:-implicit}).

Opțiuni și argumente

Opțiune / Parametru Descriere
NUME=valoare Atribuie o valoare variabilei (fără spații înainte sau după egal).
"$VAR" Expandează valoarea variabilei (se recomandă întotdeauna folosirea ghilimelelor duble).
${VAR:-implicit} Dacă variabila nu este setată sau este goală, returnează valoarea ‘implicit’ fără a o modifica.
${#VAR} Returnează lungimea în caractere a textului conținut în variabilă.
readonly VAR=val Declară o constantă care nu mai poate fi modificată ulterior.

Exemple

Exemplul 1: Declarare și expandare cu valori implicite

Testăm comportamentul variabilelor și al valorilor de rezervă.

MEDIU="productie"
echo "Rulez pe mediul: ${MEDIU:-dezvoltare}"
echo "Port implicit: ${PORT:-8080}"

Rezultat

Rulez pe mediul: productie
Port implicit: 8080

Exemplul 2: Calcularea lungimii unui text

Sintaxa ${#VAR} arată numărul de caractere.

TITLU="Linux / Bash"
echo "Lungime: ${#TITLU} caractere"

Rezultat

Lungime: 12 caractere

Greșeli frecvente

  • Punerea de spații în jurul egalului (ex. VAR = valoare): Bash va încerca să execute VAR ca pe o comandă cu argumentele = și valoare, returnând „command not found”.
  • Neutilizarea ghilimelelor duble în jurul variabilelor ($VAR în loc de "$VAR"): dacă valoarea conține spații, shell-ul o va sparge în mai multe argumente separate (word splitting).

Comenzi înrudite

  • export: Transformă o variabilă de shell într-o variabilă de mediu (environment variable) accesibilă proceselor copil.
  • echo: Afișează o linie de text sau valorile variabilelor în consolă sau ieșirea standard.
  • read: Citește o linie de text de la tastatură sau din intrarea standard și o salvează într-o variabilă.