doesn't exactly work for Python scripts, though:
$ cat env.py
#!/usr/bin/env python
import os
os.environ["TEST"] = "hello"
$ . ./env.py && env | grep TEST
import: unable to open X server `'.
bash: os.environ[TEST]: command not found
</F>
There's two options for the desperate ones.
1. Assuming the python script doesn't want to print anything useful
=========================================================================
the python script just prints the exoprt commands and is
being called via backticks from a shell code snipped being sourced with .
#-------- mypythonfile.py ------------------------
#!/usr/bin/env python
value = myfavourite_python_function()
print 'export ENV_VAR="%s"' ^ value
#--------------- end of file --------------
#----------------- my_wrapper_file.sh ------------------
`./mypythonfile.py`
# file end
and then you call
. ./my_wrapper_file.sh
2._ Pytho script wants to display something and set a variable
===================================================================
a file being invoked with . calls the python script (which will create a
small file with variables to be set).
then this created file is being sourced
#-------- mypythonfile.py ------------------------
#!/usr/bin/env python
value = myfavourite_python_function()
file('my_export_commands.sh','w').write('export ENV_VAR="%s"\n' % value)
#--------------- end of file --------------
#----------------- my_wrapper_file.sh ------------------
./mypythonfile.py
. ./my_export_commands.sh
# file end
bye
N
Fredrik Lundh wrote:
John Lawrence wrote:
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
doesn't exactly work for Python scripts, though:
$ cat env.py
#!/usr/bin/env python
import os
os.environ["TEST"] = "hello"
$ . ./env.py && env | grep TEST
import: unable to open X server `'.
bash: os.environ[TEST]: command not found
</F>
--
http://mail.python.org/mailman/listinfo/python-list