Hvordan legger jeg til miljøvariabler?
Jeg kjører Ubuntu 11.04. Jeg bruker terminalen til å starte en bash-økt, og jeg vil legge til en miljøvariabel:
$r@hajt:~$ env THEVAR=/example
Men det fungerer ikke. Den viser alle variablene med THEVAR som den siste, men et nytt kall til env
viser ikke THEVAR
lenger - env | grep THEVAR
returnerer ingenting.
På samme måte legger ikke skript med eksport (export THEVAR=/example
) eller andre variabeltilordninger (THEVAR=/example
) til miljøvariabelen.
Jeg vet at jeg gjør noe galt, jeg vet at det burde være noe enkelt, men jeg kan bare ikke finne hva.
OPPDATERING: Den virkelige betydningen av spørsmålet mitt var dette: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell
(Uansett vil jeg velge det mest stemte svaret og la den redigerte tittelen stå - det var ikke det jeg spurte om)
env
kjører et program i et modifisert miljø, og avviser deretter alle endringene.
For å angi variabelen kun for gjeldende skall:
For å angi den for gjeldende skall og alle prosesser startet fra gjeldende skall:
For å angi det permanent for alle fremtidige bash-økter, legg til en slik linje i
.bashrc
-filen i$HOME
-katalogen.For å angi den permanent, og systemwide (alle brukere, alle prosesser), legg til set-variabelen i /etc/environment:
Denne filen godtar bare variabeltilordninger som:
Ikke bruk nøkkelordet
export
her.Du må logge ut fra gjeldende bruker og logge inn igjen slik at miljøvariablene endres.
For å angi en miljøvariabel én gang, bruk kommandoen
export
i ledeteksten, ikke i et shell-skript:Variabelen vil være satt for resten av shell-sesjonen eller til den fjernes.
For å sette en miljøvariabel hver gang, bruk
export
-kommandoen i.bashrc
-filen (eller den aktuelle initialiseringsfilen for skallet ditt).For å angi en miljøvariabel fra et skript, bruk kommandoen
export
i skriptet, og derettersource
skriptet. Hvis du kjører skriptet, vil det ikke fungere.For en forklaring på forskjellen mellom sourcing og kjøring, se dette svaret: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788
For å legge til en ny miljøvariabel permanent i Ubuntu (kun testet i 14.04), bruk følgende trinn:
sudo -H gedit /etc/miljø
.FOO=bar
, skriver du bareFOO=bar
i en ny linje.