>>>>> Hamish  <[EMAIL PROTECTED]> writes:

 >>> FWIW all known bashisms were removed prior to GRASS 6.2.2.

 > ...

 >>> Anything left needing bash explicitly uses #!/bin/bash

 >> I. e., `i.spectral', `r.mapcalculator', `r.tileset' and
 >> `v.in.gps.babel'?  Could someone please point me to the list of the
 >> identified Shell portability issues of these scripts?

 > $ grep -rI 'bin/bash' scripts/* | cut -f1 -d: | grep -v '/.svn/'

        BTW, you can use `-l' instead of `cut', e. g.:

   $ grep -rlI 'bin/bash' scripts/* | grep -v '/.svn/' 

 > scripts/i.spectral/i.spectral

 > variable arrays are bash specific: ${COORD[$i]}

 > I am not sure if this is ok or not: $( cat "$TMP1") ?

        Completely.  See, e. g.:

http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03

        Furthermore, I'd recommend the $(...) form for all the new code.

 > scripts/r.tileset/r.tileset: heavy use of variable arrays

 > scripts/v.in.gpsbabel/v.in.gpsbabel: not sure maybe mentioned in the
 > bashism threads in the archives?

        It seems that was because of `echo -e' [1] which seems to have
        been subsequently removed.  The `checkbashisms' script shows
        nothing for `v.in.gpsbabel' now.

[1] nntp://news.gmane.org/gmane.comp.gis.grass.devel/19389

        It was noted that `echo' is generally ``unsafe''.  Consider,
        e. g., the following code:

echo "$a"

        Contrary to the expectations, this code /doesn't/ print the
        value of the `a' variable in all the possible cases.  E. g.:

$ echo "$a" 
$ printf "a: %s\n" "$a"
a: -n
$ 

        (And it gets even worse if the `echo' command is extended to
        support `-e' as well.)

        Fortunately, the only case when this ``feature'' may be
        effective is the `echo "$..." ...' case.

 > ISTR that dash had an option to bulk test a script for bashisms.
 > (see the archives)

        ?

 > I don't know if it is worth the effort to worry about making those sh
 > compatible. Even on Ubuntu where !/bin/sh isn't Bash, Bash is still
 > there from the terminal prompt and if you request it in the shebang.
 > And we've had no complaints from embedded users.  v.in.gpsbabel and
 > r.tileset should both be rewritten in another language anyway
 > (python) so spending lots of effort on the current versions of them
 > would be energy better spent somewhere else IMO.

        Agreed.

 > what's wrong with r.mapcalculator?

        Nothing.  It was my mistake.

[...]

 > See also GRASS's tcltk gronsole capability* & QGIS's python shell
 > menu item.

 > [*] try typing 'ls' and then click [Run], or 'xeyes' and then [Run
 > (bg)] in the lower panel of GIS.m's ouput window. I guess we could
 > put some text like "console:" above the lower frame.

        Unfortunately, it won't allow one to ``[Run]'' `for i in 1 2 3 ;
        do something ; done' if there'd be no Shell.

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to