[Rd] Dialect for shell scripts

Iñaki Úcar i.ucar86 at gmail.com
Mon Dec 18 14:00:06 CET 2017


For what it's worth, Autoconf does not assume that arithmetic
expansion will be available. Instead, it emits the following shell
code:

if ( eval 'test $(( 1 + 1 )) = 2' ) 2>/dev/null; then
  eval 'func_arith ()
  {
    func_arith_result=$(( $* ))
  }'
else
  func_arith ()
  {
    func_arith_result=`expr "$@"`
  }
fi

2017-12-17 23:55 GMT+01:00 Rodrigo Tobar <rtobar at icrar.org>:
> Dear all,
>
> During a recent package submission, we were highlighted that some lines in
> our configure script didn't follow the correct syntax. The lines looked like
> this:
>
> x=$(($y/10))
>
> We were indicated at the time that this is because the statement does not
> use Bourne shell syntax, which is absolutely true, and also that the manual
> warns about this, which is true again. So far everything is clear.
>
> However, what confuses me is that even when the manual says that "you can
> include an executable (Bourne) shell script configure in your package" [1],
> the associated footnote says something slightly different: "The script
> should only assume a POSIX-compliant /bin/sh" [2]. The footnote goes even
> further, and links to the POSIX specification of the Shell Command Language
> [3] (as published by The Open Group), which explicitly includes arithmetic
> expressions like the one above in its syntax [4].
>
> My question then is: what exact dialect should be considered? Given that the
> statement above does not work in the Bourne shell, I conclude that the
> Bourne shell is not POSIX-compliant. That in turn would make the manual
> ambiguous as to the precise dialect that should be used by our configure
> scripts, and either the shells used by R should be changed to be
> POSIX-compliants, or the manual edited to be more precise regarding .
>
> Many thanks.
>
> Rodrigo
>
> [1]
> https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Configure-and-cleanup
> [2] https://cran.r-project.org/doc/manuals/r-release/R-exts.html#FOOT25
> [3] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
> [4]
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_04
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



-- 
Iñaki Úcar
http://www.enchufa2.es
@Enchufa2



More information about the R-devel mailing list