* Magnus Therning <mag...@therning.org> [2010-02-24 09:11:54+0000] > On Wed, Feb 24, 2010 at 07:18, Roman Cheplyaka <r...@ro-che.info> wrote: > > * Brandon S. Allbery KF8NH <allb...@ece.cmu.edu> [2010-02-24 00:02:12-0500] > >> On Feb 22, 2010, at 03:36 , Roman Cheplyaka wrote: > >> >* Anthony Cowley <acow...@seas.upenn.edu> [2010-02-21 14:15:00-0500] > >> >>#! /usr/bin/env bash > >> >>./prog --RTS $* > >> > > >> > ./prog --RTS "$@" > >> > > >> >Otherwise it will work wrong if arguments contain quoted field > >> >separators (e.g. spaces). > >> > >> > >> #! /bin/sh > >> ./prog --RTS ${1+"$@"} > >> > >> The longer specification above should work with whatever /bin/sh is > >> around, whether it's Solaris /sbin/sh, FreeBSD's sh, general Linux > >> bash, Debian/Ubuntu dash, etc. > > > > Are you referring to some Solaris shell bug? > > > > Under POSIX these constructs seem to be equivalent. > > "If there are no positional parameters, the expansion of '@' shall > > generate zero fields, even when '@' is double-quoted." > > I believe he's referring to the following bit (taken from bash's man page): > > @ Expands to the positional parameters, starting from one. When the expansion > occurs within double quotes, each parameter expands to a separate word. > That > is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion > occurs within a word, the expansion of the first parameter is joined with > the beginning part of the original word, and the expansion of the last > parameter is joined with the last part of the original word. When there are > no positional parameters, "$@" and $@ expand to nothing (i.e., they are > removed).
Well, this agrees with POSIX. So still I don't see the difference between "$@" and ${1+"$@"}. -- Roman I. Cheplyaka :: http://ro-che.info/ "Don't let school get in the way of your education." - Mark Twain _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe