Re: Adding environment variables to bash.

2008-09-11 Thread John Lawrence
>
> when a process starts, it gets a *copy* of the parent's environment.  it
> can modify that copy, but it cannot modify the variables in the parent.


You can make a command use the current shell though if you use the '.'
command e.g.:

jl > cat env.sh
export TEST='hello'

jl > ./env.sh && env | grep TEST  #Doesn't set TEST in parent shell
jl > . ./env.sh && env | grep TEST  #Adding '. ' before the command
uses the same shell
TEST=hello

John.
--
http://mail.python.org/mailman/listinfo/python-list

Re: Adding environment variables to bash.

2008-09-11 Thread John Lawrence
>
> doesn't exactly work for Python scripts, though:
>

True, but you can use it in the following (admittedly messy) way:

jl> cat setenv.sh
/usr/bin/env python $@
. ./settmp
rm settmp

jl> cat env.py
#!/usr/bin/python
command = "export TEST='hello'\n"
open('settmp', 'w').write(command)

jl> . setenv.sh env.py && env | grep TEST
TEST=hello

Note this won't set the environment variable until the end of the script, so
if it's used in the script as well then it'll also need to be set with, for
example, os.environ["TEST"] = "hello"

John.
--
http://mail.python.org/mailman/listinfo/python-list