bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: No word splitting for assignment-like expressions in compound assign


From: Alexey Izbyshev
Subject: Re: No word splitting for assignment-like expressions in compound assignment
Date: Mon, 27 Jul 2020 10:25:07 +0300
User-agent: Roundcube Webmail/1.4.4

On 2020-07-27 10:06, Lawrence Velázquez wrote:
On Jul 27, 2020, at 1:31 AM, Dale R. Worley <worley@alum.mit.edu> wrote: Interesting. The documentation for 4.2.53(1) says this about parameter
assignments generally, with no special rules for compound assignments:

      All
values undergo tilde expansion, parameter and variable expansion, com- mand substitution, arithmetic expansion, and quote removal (see EXPAN-
      SION below).  ...  Word  splitting  is  not
performed, with the exception of "$@" as explained below under Special
      Parameters.  Pathname expansion is not  performed.

So it seems like the word splitting in "A=(X$Z)" is incorrect.  So is
pathname expansion in that context.


If word splitting were not performed in compound assignments, this...

    foo=(a b c)

...would not work. If pathname expansion were not performed in compound
assignments, this...

    foo=(*)

...would not work. Arrays would become significantly less usable if
word splitting and pathname expansion were not allowed in compound
assignments.

To be clear, I don't consider word splitting and expansions in compound assignments to be a problem: this is well-known and long-standing behavior, even though it doesn't seem to be explicitly documented. In particular, I expect word splitting to happen in "A=(X$Z)" case. But I expect it to happen in "A=(X=$Z)" too, and the lack of it seems unintentional to me.

Alexey



reply via email to

[Prev in Thread] Current Thread [Next in Thread]