Jak přidám proměnné prostředí?
Používám Ubuntu 11.04. Pomocí terminálu spouštím relaci bash a chci přidat proměnnou prostředí:
$r@hajt:~$ env THEVAR=/example
Ale nefunguje to. Zobrazí se všechny proměnné, přičemž THEVAR je poslední, ale další volání env
už THEVAR
nezobrazí - env | grep THEVAR
nic nevrátí.
Stejně tak skripty s exportem (export THEVAR=/example
) nebo jiným přiřazením proměnné (THEVAR=/example
) proměnnou prostředí nepřidají.
Vím, že dělám'něco špatně, vím, že by to mělo být něco jednoduchého, ale prostě nemůžu najít co.
UPDATE: Skutečný smysl mé otázky byl tento: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell
(Každopádně vyberu nejhlasitější odpověď a nechám upravený název -na to jsem se neptal)
env
spustí program v upraveném prostředí a pak všechny změny zruší.
Nastavení proměnné pouze pro aktuální shell:
Pro nastavení pro aktuální shell a všechny procesy spuštěné z aktuálního shellu:
Pro trvalé nastavení** pro všechny budoucí relace bashe přidejte takový řádek do souboru
.bashrc
v adresáři$HOME
.Chcete-li ji nastavit trvale a v celém systému (všichni uživatelé, všechny procesy), přidejte proměnnou set do souboru /etc/environment:
Tento soubor přijímá pouze přiřazení proměnných jako:
Nepoužívejte zde klíčové slovo
export
.Je třeba se odhlásit od aktuálního uživatele a znovu přihlásit, aby došlo ke změně proměnných prostředí.
Chcete-li proměnnou prostředí nastavit jednou, použijte příkaz
export
v příkazovém řádku, nikoli v shellovém skriptu:Proměnná bude nastavena po zbytek relace shellu nebo dokud nebude zrušeno její nastavení.
Chcete-li proměnnou prostředí nastavit pokaždé, použijte příkaz
export
v souboru.bashrc
(nebo v příslušném inicializačním souboru pro váš shell).Chcete-li nastavit proměnnou prostředí ze skriptu, použijte příkaz
export
ve skriptu a potézdroj
skriptu. Pokud skript spustíte, nebude fungovat.Vysvětlení rozdílu mezi sourcingem a spuštěním naleznete v této odpovědi: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788.
Chcete-li v Ubuntu trvale přidat novou proměnnou prostředí (testováno pouze ve verzi 14.04), postupujte podle následujících kroků:
sudo -H gedit /etc/environment
FOO=bar
, pak stačí napsatFOO=bar
na nový řádek.