Re: [PATCH 1/2] test-lib: quote TRASH_DIRECTORY
On Fri, Mar 04, 2016 at 02:03:15PM +0100, Michael J Gruber wrote:
Show 18 quoted lines
> >> -test ! -z "$debug" || remove_trash=$TRASH_DIRECTORY
> >> +test ! -z "$debug" || remove_trash="$TRASH_DIRECTORY"
> >
> > I don't think this does anything. The shell doesn't do whitespace
> > splitting on the right-hand side of a variable assignment:
> >
> > $ foo='lots of spaces and "!'\'' funky chars'
> > $ bar=$foo
> > $ echo "$bar"
> > lots of spaces and "!' funky chars
> >
> > Of course we _do_ need quotes when we refer to $remove_trash as an
> > argument (as with "$bar" above), but it looks like we do so correctly
> > everywhere.
>
> I'm used to that behavior, yes, but:
>
> - Is this true for every shell that we support?
It better be, because we rely on it all through our scripts. :)
But yes, it is in POSIX, and I think any shell which did not respect it would be broken enough to be unusable (I don't have a copy of Solaris /bin/sh handy, but that's usually our go-to for "unusably broken").
> - Having quotes there, too, is a good reminder to have it also where
> necessary.
We do already quote variable assignments unnecessarily in lots of places, so I don't mind it too much (it's definitely not _wrong_ to do so).
-Peff