【发布时间】:2011-03-05 03:37:30
【问题描述】:
我有一些代理设置,我只是偶尔想打开,所以我不想把它们放在我的~/.bash_profile 中。我尝试将它们直接放在~/bin/set_proxy_env.sh 中,将~/bin 添加到我的PATH 和chmod +x 脚本中,但是尽管脚本运行,变量并没有粘在我的shell 中。有谁知道如何让他们在剩下的 shell 会话中留下来?
【问题讨论】:
我有一些代理设置,我只是偶尔想打开,所以我不想把它们放在我的~/.bash_profile 中。我尝试将它们直接放在~/bin/set_proxy_env.sh 中,将~/bin 添加到我的PATH 和chmod +x 脚本中,但是尽管脚本运行,变量并没有粘在我的shell 中。有谁知道如何让他们在剩下的 shell 会话中留下来?
【问题讨论】:
在脚本中使用
export varname=value
并执行脚本:
source set_proxy_env.sh.
export 关键字确保变量被标记为自动包含在随后执行的命令的环境中。使用source 执行脚本会使用当前的 shell 启动它,而不是为脚本启动一个临时的。
【讨论】:
export;这是我失踪的source。
使用以下之一:
source <file>
. <file>
【讨论】:
你试过了吗:
. ~/bin/set_proxy_env.sh
单独运行它会打开一个单独的子shell(我认为)并在那里设置变量。但是在退出你的 shell 之后绑定就丢失了。前面的点告诉它在同一个 shell 中运行它。
另外,不要忘记export 您需要的变量,如下所示:export MYVAR=value
【讨论】: