If I have an R script that I am executing from a command line in linux, do you know how I can return the value of the variable in my R script to the linux environment without writing it to a file in my R script and then reading the file through cat? For example, if I had a simple one line R script that just did string <- 'TEST', when I call /usr/local/bin/R -no-save < MY_R_FILE, how can I put the value TEST into a shell variable? Thanks, Andrew Bierbryer [[alternative HTML version deleted]]
try littler: warmstrong at linuxsvr2:/tmp$ export MYVALUE=`r -e 'cat(10)'` warmstrong at linuxsvr2:/tmp$ env|grep MYVALUE MYVALUE=10 warmstrong at linuxsvr2:/tmp$ On Wed, Apr 22, 2009 at 10:48 AM, Bierbryer, Andrew <abierbryer at klsdiversified.com> wrote:> If I have an R script that I am executing from a command line in linux, > do you know how I can return the value of the variable in my R script to > the linux environment without writing it to a file in my R script and > then reading the file through cat? > > > > > > For example, if I had a simple one line R script that just did > > ? ? ? ? ? ?string <- 'TEST', > > > > when I call > > /usr/local/bin/R -no-save < MY_R_FILE, > > > > how can I put the value TEST into a shell variable? > > > > Thanks, > > > > Andrew Bierbryer > > > > > > > > > > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
On Wed, Apr 22, 2009 at 3:48 PM, Bierbryer, Andrew <abierbryer at klsdiversified.com> wrote:> For example, if I had a simple one line R script that just did > > ? ? ? ? ? ?string <- 'TEST', > > > > when I call > > /usr/local/bin/R -no-save < MY_R_FILE, > > > > how can I put the value TEST into a shell variable?You can use back-ticks (`) in most shells to capture output. So print the value you want using R's cat() function, and capture it thus: $ cat test.R string <- 'TEST' cat(string) $ v=`R --slave --no-save < test.R ` $ echo $v TEST bash shell also allows $( ) notation: $ v=$(R --slave --no-save < test.R ) note the use of --slave to make R shut up about itself. Barry