[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 <- 
> "/bioinformatics/phylocom/_results/beta/ss_newicks/subsamp6_fromea_wnalist.newick"
>
> cmd1 = 'source ~/.bash_profile'
> cmd2 = paste('python /bioinformatics/phylocom/_scripts/update_newick_root.py 
> ', mytreefile_location)
>
> system(cmd1)
> system(cmd2)
> ============
>
> ...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 mailing list