[R] running multiple commands in one system() call
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Feb 23 08:21:39 CET 2009
On Sun, 22 Feb 2009, Nick Matzke wrote:
> Hi all,
> I'm on Mac OS X 10.4...
For which there is a separate mailing list, R-sig-Mac .
> So I've got a small python script I need to run from R. However, to get the
> python script working, I need to have the shell that R calls get settings
> from my .bash_profile file, which apparently it doesn't currently (the shell
> R calls uses an older version of python, and also this older version of
> python can't see various python modules I have to import to make the python
> script work).
Let me guess: you are in fact using R.app (the GUI, a separate
project) and not R. It is most likely not a question of 'the shell
that R calls' but the 'settitngs that launching a process from the
desktop uses', and you need to adjust that. It you are really running
command-line R, it inherits shell settings (especially the path) from
the shell which called it.
If you don't know how to set the environment for R.app, ask on the
R-sig-mac list as it is way off topic here.
> Basically I need to do this:
> mytreefile_location <-
> cmd1 = 'source ~/.bash_profile'
> cmd2 = paste('python /bioinformatics/phylocom/_scripts/update_newick_root.py
> ', mytreefile_location)
> ...but if I do it this way, the sourcing of .bash_profile from the first
> system() call does not carry over to the 2nd system() call.
Of course: each system() command runs a separate shell.
Your subject line is about something not covered in the body of your
email: to do that put the commands in an executable bash script and
call system() on that.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help