source în Linux / Bash

Scripting Bash POSIX / Bash built-in

Execută comenzile dintr-un fișier direct în contextul shell-ului curent, păstrând variabilele și funcțiile.

Sintaxă comandă
source fișier [argumente...]
. fișier [argumente...]

Ce face source

Dacă rulezi un script ca ./script.sh, Linux deschide un proces copil nou (un subshell). Toate variabilele sau funcțiile create în el dispar în momentul în care scriptul se termină.

Comanda source (sau echivalentul său scurt, caracterul punct .) citește și execută fișierul direct în shell-ul activ. Este modul standard de a încărca fișiere .env, medii virtuale Python (source venv/bin/activate) sau reîncărcarea configurării după modificarea lui ~/.bashrc.

Opțiuni și argumente

Opțiune / Parametru Descriere
fișier Calea către fișierul ale cărui instrucțiuni vrei să le încarci în sesiunea activă.
. (punct) Sinonimul standard POSIX pentru comanda source.

Exemple

Exemplul 1: Încărcarea unui fișier de mediu în sesiunea curentă

Variabilele din fisier.env devin imediat disponibile în terminal.

echo 'export DB_USER="dexblog"' > setari.env
source ./setari.env
echo "Utilizator conectat: $DB_USER"

Rezultat

Utilizator conectat: dexblog

Greșeli frecvente

  • Rularea ./setari.env și mirarea că variabilele nu au fost salvate în terminal (au fost setate doar în subshell-ul temporar care s-a închis imediat).

Comenzi înrudite

  • export: Transformă o variabilă de shell într-o variabilă de mediu (environment variable) accesibilă proceselor copil.
  • alias: Creează scurtături personalizate și memorabile pentru comenzi lungi sau frecvente.
  • Variabile în Bash: Declararea, atribuirea, valorile implicite și expandarea corectă a variabilelor în Bash.