Path: csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Chet Ramey Newsgroups: gnu.bash.bug Subject: Re: Unexpected result of array assignment Date: Fri, 19 Jul 2019 15:21:45 -0400 Lines: 37 Approved: bug-bash@gnu.org Message-ID: References: Reply-To: chet.ramey@case.edu NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: usenet.stanford.edu 1563564873 22120 209.51.188.17 (19 Jul 2019 19:34:33 GMT) X-Complaints-To: action@cs.stanford.edu Cc: chet.ramey@case.edu To: "Darren 'Tadgy' Austin" , bug-bash@gnu.org Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1563564856; bh=K2grkDLSGSdbiN+lMCajrWyDk+smZ13d188lrXjoIrA=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=2kPoCpHFq3x+2cyZMxUlGgWmKYQOANE9thr6zOMhuD67lwoWcJnT2KB1A3RjsGlvRo AbxwJkHIqRPTYq42H5QvsVWhrGEigP5UTONxqTVZzH+ustTRQWurNwRCfivGzDtOWJ0 7k6N1z/MEi8T7cvSizj62gTptNLiGSBwRz3kgU6xmOjErH0geNwtyLyq8w8e5uZb8Jh i4ribVRs48FJnxTFjNjE/EB/roEa2B/p+h/tB99Qp/4dJFd1Jg4/utjwXB4bVieakMu cPPDT063zPluSqFy6IZWrK43RpDNFAwvNt9hQchgTpubS9COS7ugQk/RUps3c2Ryt7Q KLeFIqtA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1563564112; bh=K2grkDLSGSdbiN+lMCajrWyDk+smZ13d188lrXjoIrA=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=VlnD9jOLlVAbJXZwWH3MV8tQmijlSUOJsFgxZG+K15+2QJSQDLuCH7xSYx3yjBNt4J 5Murqx3vjToWNum1iuVdFz/6pK9yio5Z2yXrVMnG3mmpUUxZEvQgtQRT/G7omIEAfM8 RxDHzGIvodZdEelIx1ycYYJsvwfacyI42whIJb4jYWS5CJIMS9Jz+CcfPbdjdKtdg9k exPg+Wf1Y270eLIOyrfp90JDqwBJ81aa8GznYtHQOMKMEcWemh3QEiOzGzYaUwuhGzL v20Q13VHHRzIehwwC0vPdTgbAsNtLkDre8KQAuLlkZIcjzeyOjnMhNqYyXSd9Xd7Or/ 6l//A8pQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1563564108; bh=aTfEiY+T0ITLanZe9neDLyZVQF1habY0dNSlA5lGjKo=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=jtWvAc5ysJCPCNn6D5YOkdjxdcQtR57/++cjmap6ZSHSgqIukelIjD1Kz0ODOv7CZQ 4wrfp8rUbdIHq57MM+GC+h0oJDNzcJ6Hga5/WYZUnBx1LhYpy6cDMbK/NLB5zSW/5aP pAFryBeyH/rqcfayoRnuGStOehDRJpNjOdDNLMxYUL+THaTtzJ5wZ/SBFztM39cR4H/ KEvC8ojttD7IKVN/5nDmr3R9JZlRfwTpnLe2014Y73ccUQhqSAKK4HCkHJi05cgEasY grFREaUt3l77sqc65oWoMa9vPoWD8XjBOuZwPQmlrr2joQJR6fSPNr/frkKpoCpmBlO i/5BXsdw== Openpgp: preference=signencrypt Autocrypt: addr=chet.ramey@case.edu; prefer-encrypt=mutual; keydata= xsDiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8DpvgRh40Yp AwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qlyyX+2BZU+okBUqoWQ koWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJOwyBFJdugjfwjSoRSwDOIMf0D /iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZbN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqES GZragl4VqJfxBr29Ag0UDvNbUbXoxQsARdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQ OTGOCa4W2o29nFfFjQrsrrYHzVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP2 1Wf7f5niCCRKQLNyUy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWm W5fsm/di50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJM0gQ2hldCBSYW1l eSA8Y2hldC5yYW1leUBjYXNlLmVkdT7CYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX gAUCRX3FIgIZAQAKCRC7WGnwZOp0q069AKCNDRn+zzN/AHbaynls/Lvq1kH/RQCgkLvF8bDs maUHSxSIPqzlGuKWDxbOwE0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWanIFOXIndqhvU1 3cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0B2pBLX/C10W1aY+cUrXZ gXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98FL69l6/K4xeNSBRM/AAMHA/wNAmRB pcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/ J90lxrVnQwucZmfz9zgWDkT/MpfB/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdf aKAiim0nVxxQmPmiRvtCmcJJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8 Gs/zUzvXMt7evaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 In-Reply-To: Content-Language: en-US X-Junkmail-Status: score=7/90, host=mpv1-2015.case.edu X-Junkmail-PrAS-Raw: score=7/90, refid=2.7.2:2019.7.19.182717:17:7.944, ip=, rules=DKIM_SIGNATURE, __HAS_REPLYTO, __HAS_CC_HDR, __SUBJ_REPLY, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __TO_MALFORMED_2, __TO_NAME, __TO_NAME_DIFF_FROM_ACC, __HAS_REFERENCES, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CT_TEXT_PLAIN, __CTE, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __DKIM_ALIGNS_1, __DKIM_ALIGNS_2, __ANY_URI, __URI_WITH_PATH, __URI_NO_WWW, __CP_URI_IN_BODY, __SUBJ_ALPHA_NEGATE, __URI_IN_BODY, __URI_NOT_IMG, __FORWARDED_MSG, __BODY_NO_MAILTO, __NO_HTML_TAG_RAW, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_1400_1499, __MIME_TEXT_P1, __MIME_TEXT_ONLY, __URI_NS, HTML_00_01, HTML_00_10, DKIM_ALIGNS, BODY_SIZE_5000_LESS, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 129.22.103.226 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com gnu.bash.bug:15194 On 7/17/19 9:16 PM, Darren 'Tadgy' Austin wrote: > Bash Version: 5.0 > Patch Level: 3 > Release Status: release > > Description: > There seems to be unexpect (a bug?) behaviour with bash's handling of array assignments. > Specifically, if you try to assign an array element a value containing that same array value, it fails to work. > See example below :) > Bug confirmed by the folks in #bash on Freenode - unable to explain what is happening. Thanks for the report. This changed between bash-4.2 and bash-4.3 as part of changes to avoid scanning the subscript in an associative array reference multiple times: before and after expansion, and for compatibility with ksh93 (which behaves the same as bash-4.3+). It's obliquely referenced in the documentation: "When += is applied to an array variable using compound assignment (see Arrays below), the variable's value is not unset (as it is when using =)" However, I agree that it would be more consistent to let the expansion of the rhs use the existing value of the array before clearing it, since that's what indexed arrays do. I'll make associative array assignment do that. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/