On Tue, Oct 20, 2009 at 10:34 PM, Dan McGee <[email protected]> wrote: > On Tue, Oct 20, 2009 at 10:30 PM, Allan McRae <[email protected]> wrote: >> Aaron Griffin wrote: >>> >>> On Tue, Oct 20, 2009 at 10:17 PM, Dan McGee <[email protected]> wrote: >>> >>>> >>>> On Tue, Oct 20, 2009 at 9:45 PM, Allan McRae <[email protected]> wrote: >>>>> Note how in pass two, foo and bar are no longer in the one line. Of >>>>> course, passing ./two.sh "$@" works, but the argument parsing in makepkg >>>>> clears that, hence the need to save it to ARGLIST. >>> >>> It's worth noting that the following works two: >>> >>> ./two.sh "$@" >>> >>> The reason being that "$@" is special in bash. It actually expands to >>> the command line quoted as you passed it, with "foo bar" being one >>> argument. The issue is with the assignment to a single bash variable >>> >> >> The reason that can not be used in makepkg is the option parsing uses >> "shift" and thus clears the value of $@ as it goes. > > I thought I'd craft a witty reply but you beat me with a nicely worded > one. I happily trimmed the reply chain above to see the failure to > read. :P
Whoops. I didn't see it mentioned. I did, however, want to point out the fact that "$@" is special. It's not just a variable in quotes. It's crazy like that
