On Jul 29, 2013, at 08:27 , Jeff Newmiller wrote:

> You seem confused.

Not particularly, but he needs to be aware of _which_ shell R is executing in 
system() calls. These things work for me:

> system("foo=(bar baz); echo ${foo[1]}")
baz

Dario's issue is suggested by his error message

>>> system("names=(X Y)")
>> sh: Syntax error: "(" unexpected

The shell is (Bourne) "sh", not "bash", so bash extension won't work. 

This is highly system dependent: On OSX Snow Leopard, e.g., /bin/sh really is 
GNU bash, which is why it works for me. Others have the more sane setup where 
/bin/sh really is Bourne sh.

Next question is of course how to ensure that bash gets used. I must admit that 
I have long forgotten...

-Peter D.


> You are programming in R, and asking questions about bash on an R mailing 
> list. You seem to need to learn the difference between environment variables 
> and bash variables and how processes acquire and transfer environment 
> variables, which is really an operating system concept and off topic here. 
> Once you do understand this difference, you might be interested in reading 
> the R help file on Sys.setenv().
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnew...@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                      Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> --------------------------------------------------------------------------- 
> Sent from my phone. Please excuse my brevity.
> 
> Dario Strbenac <dstr7...@uni.sydney.edu.au> wrote:
>> Hello,
>> 
>> It is difficult searching for previous posts about this since the
>> keywords are short and ambiguous, so I hope this is not a duplicate
>> question.
>> 
>> I can easily declare an array on the command line.
>> 
>> $ names=(X Y)
>> $ echo ${names[0]}
>> X
>> 
>> I am unable to do the same from within R.
>> 
>>> system("names=(X Y)")
>> sh: Syntax error: "(" unexpected
>> 
>> Reading the documentation for the system function, it appears to only
>> be relevant for executing commands. What can I do instead to declare a
>> BASH array ? Thanks.
>> 
>> --------------------------------------
>> Dario Strbenac
>> PhD Student
>> University of Sydney
>> Camperdown NSW 2050
>> Australia
>> 
>> ______________________________________________
>> R-help@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.
> 
> ______________________________________________
> R-help@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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-help@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.

Reply via email to