How do I set bash environment variables from a script?
I have some proxy settings that I only occasionally want to turn on, so I don't want to put them i开发者_如何学Gon my ~/.bash_profile
. I tried putting them directly in ~/bin/set_proxy_env.sh
, adding ~/bin
to my PATH
, and chmod +x
ing the script but though the script runs, the variables don't stick in my shell. Does anyone know how to get them to stick around for the rest of the shell session?
Use one of:
source <file>
. <file>
In the script use
export varname=value
and also execute the script with:
source set_proxy_env.sh
.
The export
keyword ensures the variable is marked for automatic inclusion in the environment of subsequently executed commands. Using source
to execute a script starts it with the present shell instead of launching a temporary one for the script.
Did you try this:
. ~/bin/set_proxy_env.sh
Running it by itself opens a separate subshell (I think) and sets the variable there. But then the binding is lost after exiting back into your shell. The dot at the front tells it to run it within the same shell.
Also, don't forget to export
the variables you need like so: export MYVAR=value
精彩评论