Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #16623
| Path | csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Oğuz <oguzismailuysal@gmail.com> |
| Newsgroups | gnu.bash.bug |
| Subject | Re: No word splitting for assignment-like expressions in compound assignment |
| Date | Mon, 27 Jul 2020 11:05:31 +0300 |
| Lines | 65 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.132.1595837136.2739.bug-bash@gnu.org> (permalink) |
| References | <87o8o1zfpn.fsf@hobgoblin.ariadne.com> <F420E583-E5D4-48BB-98E3-044C700BA07A@larryv.me> <e64878396a22641351ff3b910fdc99d8@ispras.ru> <CAH7i3LpA=oZt8E8ecAH8eCO+92oYxHXhymB6HaNDbyVeB+R3Fg@mail.gmail.com> |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset="UTF-8" |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | usenet.stanford.edu 1595837137 7089 209.51.188.17 (27 Jul 2020 08:05:37 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| Cc | Lawrence Velázquez <vq@larryv.me>, "Dale R. Worley" <worley@alum.mit.edu>, "bug-bash@gnu.org" <bug-bash@gnu.org> |
| To | Alexey Izbyshev <izbyshev@ispras.ru> |
| Envelope-to | bug-bash@gnu.org |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=h6k6Ma0Qu0ESy9BjjxQ+Mi5IdfGRpTmnAQmCrKhEkZI=; b=LEAOXX2qLdzrZyE1ENECt81hysmp+xSg49zGOaj7utKF4C+vWLn5XzVJ7nBNoBSudU FK+F/zPngJnadVB00UAjYHdzyNJDRWN+3ewoDTCUTjsq6/T6SCZ4m7O0DBmqCmYVv1Zp udOmq0mjQlEplPWiBVD4B1ZWPn3c91zlWOQ1w4Dsv3M4Drf1OgSezbmzJVy2K90X/zj2 4AGotn9YsZNoA7XmiQ1745qEJAg8Z9Qy9WIKXu3AUoTihVEdrVZkYl63f/FfRj9eWo0j qOGiKUAeoZPrVifFyamGtwUMJ7kKMpgj1RDuUBt28JNJrV4eocgfjupmm0oQcU9zJJ9s LJDA== |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=h6k6Ma0Qu0ESy9BjjxQ+Mi5IdfGRpTmnAQmCrKhEkZI=; b=gIoSncWDVX5hqOjitawNCYuQA9IfPI+KaDHUduCkN92kQAlE3x6G1zK30VMWulxn48 6kBqXlxAz407Q/0XiFsc5xV41UGjmDwBb84Lu5d7bmUjcYjHmnYZhS/5ho0a+sGUzgYM JqpK55CDIFrhSGmFOyb5h0qBb+maLvwS2ggJkQXnojS1kOjykl3b5w39RxsktidOlEM7 Hy/u5306OwlWySh62giM/A01cLT+YCxsjmSXsgGIMzx4ZhAeNxRLB0UeLjwPoiah6ifs qF6hdAMO5lzgqxoj6HHEpZ5H3hlcLk7nfJWik4nNrBNUzPcklLMu4mtKopCVcbyJ85m9 UmVA== |
| X-Gm-Message-State | AOAM533NgUYdS2Mjx0AfNPH9qk9Gr9ISzLds+8mN6ora8qCkf6zWxY9/ UR0BDkjKpkuZIMdqNJDDAGzUR93Y4MeyXqS6YH8= |
| X-Google-Smtp-Source | ABdhPJzDGBIvbwhXDB1zvNBEoZBIl1dH6VyxOjN2FV1TMez9LbJ6hJNRGZzO1K0NtJfjuJMZVFNzu4Wq9VLWClnAKwY= |
| X-Received | by 2002:ac8:7591:: with SMTP id s17mr5672683qtq.160.1595837132525; Mon, 27 Jul 2020 01:05:32 -0700 (PDT) |
| In-Reply-To | <e64878396a22641351ff3b910fdc99d8@ispras.ru> |
| Received-SPF | pass client-ip=2607:f8b0:4864:20::829; envelope-from=oguzismailuysal@gmail.com; helo=mail-qt1-x829.google.com |
| X-detected-operating-system | by eggs.gnu.org: No matching host in p0f cache. That's all we know. |
| X-Spam_score_int | -20 |
| X-Spam_score | -2.1 |
| X-Spam_bar | -- |
| X-Spam_report | (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no |
| X-Spam_action | no action |
| X-Content-Filtered-By | Mailman/MimeDel 2.1.23 |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.23 |
| Precedence | list |
| List-Id | Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe> |
| List-Archive | <https://lists.gnu.org/archive/html/bug-bash> |
| List-Post | <mailto:bug-bash@gnu.org> |
| List-Help | <mailto:bug-bash-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <CAH7i3LpA=oZt8E8ecAH8eCO+92oYxHXhymB6HaNDbyVeB+R3Fg@mail.gmail.com> |
| X-Mailman-Original-References | <87o8o1zfpn.fsf@hobgoblin.ariadne.com> <F420E583-E5D4-48BB-98E3-044C700BA07A@larryv.me> <e64878396a22641351ff3b910fdc99d8@ispras.ru> |
| Xref | csiph.com gnu.bash.bug:16623 |
Show key headers only | View raw
27 Temmuz 2020 Pazartesi tarihinde Alexey Izbyshev <izbyshev@ispras.ru>
yazdı:
> 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.
I agree, anything that forms a valid assignment statement in isolation is
exempt from word splitting and that indeed seems like a bug or very poor
implementation choice.
$ Z='a b'
$ A=(X=$Z X[123]=$Z X[qwerty]=$Z X+=$Z)
$ declare -p A
declare -a A=([0]="X=a b" [1]="X[123]=a b" [2]="X[qwerty]=a b"
[3]="X+=a b")
>
> Alexey
>
>
--
Oğuz
Back to gnu.bash.bug | Previous | Next | Find similar
Re: No word splitting for assignment-like expressions in compound assignment Oğuz <oguzismailuysal@gmail.com> - 2020-07-27 11:05 +0300
csiph-web