2010-06-17 124 views
12

我有一些代理設置,我只是偶爾想打開,所以我不想把它們放在我的~/.bash_profile。我試着將它們直接放在~/bin/set_proxy_env.sh中,將~/bin添加到我的PATHchmod +x腳本中,但腳本運行時,變量不會粘在我的shell中。有誰知道如何讓他們繼續在shell會話的其餘部分?如何從腳本設置bash環境變量?

回答

18

用途之一:

source <file> 

. <file> 
+0

,先生,是銀行的錢 – tofutim 2016-12-04 00:21:06

14

在腳本中使用

export varname=value

,並與執行腳本:

source set_proxy_env.sh

export關鍵字可確保該變量被標記爲自動包含在隨後執行的命令的環境中。使用source來執行一個腳本,使用目前的shell啓動它,而不是爲腳本啓動一個腳本。

+0

我有'export';這是我錯過的'源頭'。 – 2010-06-17 21:54:14

4

你試試這個:

. ~/bin/set_proxy_env.sh

自身運行它會打開一個獨立的子shell(我認爲),並設置變量有。但是,退出到您的shell後,綁定會丟失。前面的點告訴它在同一個shell中運行它。

另外,不要忘了export你需要像這樣的變量:export MYVAR=value

+0

沒有必要導出每個變量。只有你需要對子進程可見的那些。 – 2010-06-17 20:00:51

+0

啊是的,這就是我的意思:) – 2010-06-17 20:11:22

相關問題