Hello,

* Jeff Squyres wrote on Mon, May 03, 2010 at 04:04:59PM CEST:
> > On Apr 29, 2010, at 11:24 AM, Jonathan Vincent wrote:
> > 
> > > sh -c '/usr/bin/env FOO=bar (echo hello)'
> > > ksh -c '/usr/bin/env FOO=bar (echo hello)'
> > >
> > > is not valid
> > > sh -c '/usr/bin/env FOO=bar echo hello'
> > > works.
> > 
> > Per your later mails, plm_rsh_module.c does this:
> > 
> >         tmp = opal_argv_split("( test ! -r ./.profile || . ./.profile;", ' 
> > ');
> > 
> > (and later adds the closing ")").  You reported the final line to be:
> > 
> > /usr/bin/env 
> > LD_LIBRARY_PATH=/pdc/vol/openmpi/1.4.1/intel/lib:/pdc/vol/icompilers/11.1/icc/lib/intel64:/pdc/vol/i-compilers/11.1/ifort/lib/intel64
> >  ( test ! -r ./.profile || . ./.profile; 
> > /pdc/vol/openmpi/1.4.1/intel/bin/orted -mca ess env -mca orte_ess_jobid 
> > 284360704 -mca orte_ess_vpid 3 -mca orte_ess_num_procs 5 --hnp-uri 
> > "284360704.0;tcp://193.11.170.208:49530" )
> > 
> > What would the correct syntax be?

Well, after the arguments setting the variables, portable env really
only takes a command line with arguments, not something that is passed
to the shell again.  You could work around this by constructing
something like

  /usr/bin/env var=val ... sh -c 'script ...'

>> With the || and ;, are the () really unnecessary?

Well, neither the () nor the || nor ; really belong in a command-line
that is not interpreted by a shell.

Cheers,
Ralf

Reply via email to