Cum pot adăuga variabile de mediu?

Am'm care rulează Ubuntu 11.04. Eu folosesc terminalul pentru a începe o petrecere sesiune, și vreau să adăugați o variabilă de mediu:

$r@hajt:~$ env THEVAR=/example

Dar's nu funcționează. Acesta arată toate variabilele cu MIHAIL fiind ultima, dar un alt apel la "mediu" nu arată MIHAIL mai- env | grep MIHAIL întoarce nimic.

În mod similar, script-uri cu export (export MIHAIL=/exemplu) sau alte sarcini variabile (MIHAIL=/exemplu) nu't adăugați variabila de mediu.

Știu că am'm a face ceva greșit, știu că ar trebui să fie ceva simplu, dar nu pot't găsi ceea ce.

UPDATE: Sensul real de întrebarea mea a fost asta: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(Oricum am'll alege cel mai votat răspuns și se lasă editat titlul -care a fost't ceea ce am cerut)

"mediu" ruleaza un program într-un modificate mediu, apoi respinge toate modificările.

Comentarii la întrebare (5)
Soluția

Pentru a seta variabila doar pentru shell-ul curent:

VARNAME="my value"

Să-l setați pentru shell-ul curent și toate procesele început de la shell-ul curent:

export VARNAME="my value"      # shorter, less portable version

Pentru a seta permanent pentru toate viitoarele bash sesiuni adăuga o astfel de linie a ta .bashrc fișier în folderul$HOME` director.

Pentru a seta permanent, și la nivel de sistem (toți utilizatorii, toate procesele) se adaugă set de variabile din /etc/mediu:

sudo -H gedit /etc/environment

Acest fișier acceptă numai sarcini variabile, cum ar fi:

VARNAME="my value"

Nu folosesc "export" cheie aici.

Ai nevoie să te deconectezi de la curent de utilizator și autentificare din nou, astfel încât variabilele de mediu modificări să aibă loc.

Comentarii (7)

Pentru a stabili o variabila de mediu o dată, folosesc "export" de comandă în linia de comandă, nu într-un shell script:

$ export THEVAR=/example

Variabila va fi stabilit pentru restul de coajă de sesiune sau până unset.

Pentru a stabili o variabila de mediu, de fiecare dată, folosesc "export" comanda .bashrc de fișier (sau corespunzătoare fișier de inițializare pentru shell).

Pentru a stabili o variabila de mediu dintr-un script, folosesc "export" comandă în script-ul, și apoi "sursă" script-ul. Dacă executați script-ul nu va funcționa.

Pentru o explicație a diferenței dintre aprovizionare și de executare a vedea acest răspuns: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788

Comentarii (1)

Permanent se adaugă o nouă variabilă de mediu în Ubuntu (testat numai în 14.04), utilizați următorii pași:

  1. Deschide un terminal (prin apăsarea CtrlAltT)
  2. `sudo -H gedit /etc/mediu
  3. Tastați parola
  4. Editați fișierul text deschis: de exemplu, dacă doriți să adăugați FOO=bar, scrie `FOO=bar într-o nouă linie
  5. Salvați-l
  6. Odată salvat, logout si login din nou.
  7. Necesare modificări.
Comentarii (5)

Pentru a obține mediu/var modificările să persiste după scenariul a fost finalizată, va trebui să utilizați'source ./script.sh sau notația prescurtată pentru sursa, ".", ca . ./script.sh

Sursa va executa comenzile din script ca dacă ați tastat-le în... asa ca nu schimba unele aspecte ale script-ul, cum ar fi ieșirea... deci, dacă dumneavoastră controale script ceva și decide să ieși, dacă false, de exemplu, prin apelarea ieșire 0`, se va termina terminalul curent / sesiune de shell.

Comentarii (3)

Dacă faci lucruri prin intermediul script-ul, o modalitate ușoară de a seta variabila de mediu este permanent pus mai jos declarație în scenariul tău,

if [[ ! -d "$MyVar" ]]; then 
    export MyVar="abc"
    echo 'export MyVar="abc"' >> ~/.bashrc
fi

Dacă aveți nevoie pentru a evaluage expresii ca pwd, puteți utiliza acest lucru, de exemplu,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc
Comentarii (0)

Știu că's destul de târziu, dar dacă doriți să adăugați o variabilă de mediu pentru toți utilizatorii (de exemplu, JAVA utilizare) - puteți face următoarele:

  1. Deschide /etc/bash.bashrc folosind nano (puteți folosi orice editor, eu nu prefer VIM ca's cel mai rău atunci când vine vorba de ușurința în utilizare - nimic personal).

  2. Adăugați la fișier:

export VAR=calea export PATH=$PATH:/bin 3) (mai Bine dacă puteți sări cutie) - sau pur și simplu deschide o nouă sesiune SSH și confirmați cuenv' comandă.

DAR DACĂ doriți ca fiecare utilizator să aibă o setare pentru asta, trebuie să fac o schimbare (scenariu) a .bashrc fișierul sub ~/.bashrc "(sau " /home/$USER/ dacă sunteți nou la sistemele Linux)

Comentarii (0)