On Friday, August 16, 2024 at 11:50:14 AM GMT+3, Patrick Steinhardt <ps@xxxxxx> wrote: > On Thu, Aug 15, 2024 at 01:14:08PM +0000, Avi Halachmi (:avih) via GitGitGadget wrote: >> >> - svn_remote[$((${#svn_remote[@]} + 1))]="$value" >> + svn_remotes=${svn_remotes}${value}${LF} # URI\nURI\n... > > > I was wondering whether this is something we want to quote, mostly > because I still have the failures of dash in mind when assigning values > with spaces to a `local` variable without quoting. I do not know whether > the same issues also apply to non-local variables though, probably not. IFS field splitting and glob expansion strictly never happen and never happened at the assignment part of a "simple command", since the first version of POSIX in 1994, so quotes are not needed to avoid that. See my guidelines at the commit message of part 5/8 (git-prompt: add some missing quotes), and this always works: a=$b$(foo bar)${x##baz} However, this does not answer the question of whether we want to use quotes in assignments. My general take is to use quotes only when required, and if one is not sure, then use quotes, or read the spec to be sure, but do keep in mind that some older shells are not always fully compliant with the latest POSIX spec. But unquoted assignment is ubiquitous. I'd say to not quote in assignments, except to avoid tilde expansion (which can only happen with unquoted literal tilde at the input, but not after expansion or substitution). But if there's a strong precedence or preference to use quotes in assignment, then I can change it. avih