2010-06-17 18 views
12

Mam niektóre ustawienia proxy, które tylko sporadycznie chcę włączyć, więc nie chcę ich umieszczać w moim ~/.bash_profile. Próbowałem umieścić je bezpośrednio w ~/bin/set_proxy_env.sh, dodając ~/bin do mojego PATH i chmod +x skryptu, ale mimo uruchomienia skryptu, zmienne nie pozostają w mojej powłoce. Czy ktoś wie, jak zmusić ich do pozostania przy sobie przez resztę sesji powłoki?Jak ustawić zmienne środowiskowe bash ze skryptu?

Odpowiedz

18

Użyj jednego:

source <file> 

. <file> 
+0

to sir, to pieniądze w banku – tofutim

14

W skrypcie użyć

export varname=value

a także wykonać skrypt z:

source set_proxy_env.sh.

Słowo kluczowe export zapewnia, że ​​zmienna jest oznaczona do automatycznego włączenia w środowisku kolejnych wykonanych poleceń. Użycie skryptu source powoduje uruchomienie go z bieżącą powłoką zamiast uruchamiania tymczasowego skryptu.

+0

miałem 'export'; to było "źródło", którego mi brakowało. –

4

Próbowałeś to:

. ~/bin/set_proxy_env.sh

bieganie to sama otwiera oddzielny powłoki w tle (chyba) i tam ustawia zmienną. Ale wtedy wiązanie jest tracone po wyjściu z powrotem do twojej powłoki. Kropka z przodu mówi, aby uruchomić ją w tej samej powłoce.

Ponadto, nie zapomnij export zmienne potrzebne tak: export MYVAR=value

+0

Nie trzeba eksportować każdej zmiennej. Tylko te, które muszą być widoczne dla procesów potomnych. –

+0

Ach tak, właśnie o to mi chodziło :) –

Powiązane problemy