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