如何从脚本中设置bash环境变量?

时间:2010-06-17 19:44:19

标签: bash macos terminal

我有一些我偶尔想要打开的代理设置,所以我不想把它们放在我的~/.bash_profile中。我尝试将它们直接放在~/bin/set_proxy_env.sh中,将~/bin添加到我的PATHchmod +x脚本但是虽然脚本运行,但变量不会粘在我的shell中。有谁知道如何让他们留在shell会话的其余部分?

3 个答案:

答案 0 :(得分:19)

使用以下其中一项:

source <file>

. <file>

答案 1 :(得分:14)

在脚本中使用

export varname=value

并执行脚本:

source set_proxy_env.sh

export关键字确保将变量标记为在随后执行的命令的环境中自动包含。使用source执行脚本会使用当前shell启动它,而不是为脚本启动临时脚本。

答案 2 :(得分:4)

你试过这个:

. ~/bin/set_proxy_env.sh

单独运行它会打开一个单独的子shell(我认为)并在那里设置变量。但是在退出到shell之后绑定会丢失。前面的点告诉它在同一个shell中运行它。

此外,请不要忘记export您需要的变量:export MYVAR=value