Path: csiph.com!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail From: =?UTF-8?B?TMOpYSBHcmlz?= Newsgroups: gnu.bash.bug Subject: Re: Unexpected result of array assignment Date: Fri, 19 Jul 2019 03:38:59 +0200 Lines: 75 Approved: bug-bash@gnu.org Message-ID: References: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="UEAnxSZqfXBHG3VOoKZtnu8IBxvhGjBo2" X-Trace: usenet.stanford.edu 1563500355 19583 209.51.188.17 (19 Jul 2019 01:39:15 GMT) X-Complaints-To: action@cs.stanford.edu Cc: xaoxx@t-online.de To: bug-bash@gnu.org Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=noiraude.net; s=noiraude; h=Content-Type:MIME-Version:Date:Message-ID:Cc: From:Subject:References:To:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=dXmB3wsR5NFGmSoHUhSvsDavyVNvctJvMnEgXmY8ppo=; b=bWOlxYEdhdkfZUxQLbzKq8K0j1 plSXRP8S4ZPgUxQTTvTdrzxl3ASuRarxjA/A3jMfbhJyFosrN3U9tbQHZw03ISGnDNs6bWS1dVoPw A5bosxlPfwYxxjvjxdgT1eGz8iRuVQ2BDvj62tEUrvgJlXnE8bMxtCeyXzrLWKD8hSMpxTOF1smaH P0mofxjtgN3AwjWiM4OgeLcFyUpaIBToh34hQmZuToRLllNv9bAE0SHF6QANDzq55eYYs3uaG+r23 sSal6kwJunwrSUW7SirwDWZ/JC4CWpWhyVx2cG5aPWzLmVVa53b782nqhzH2NwdnCnGceDW6Nqr5X p9oQVMUA==; Openpgp: id=2A931E283F202EE5BFCC4F7070946F168078ED52; url=https://www.noiraude.net/8078ED52.asc Autocrypt: addr=lea.gris@noiraude.net; prefer-encrypt=mutual; keydata= mQINBE8OHUcBEADQjtKQcz/T/msKQcvyWEmBz5aKFGYjdErVABpJAiGqNa9m7kr2P5i7iXR/ nuUswsPlVmRxeIWsAMxoU02cwicRoydEJgbZH6KwXMmAynersG70JIobOXF2g5W683pf1R35 PNjrw3sIiQJgpRi2idL0Fvhp8h78fvHkseaomRg8r8zvOQ4AnbWcywDwbZzDVLrMuEUi27Yh j86RaJDcv6P0ygmMiVFHYFyIDBpl2uVbePanpjT8lwzBCJ1MVzc0Bfyi2W0dYlK1dP5pWeQb kMmizpg4SqF0mMSH1Iq8q9AR+M+eN7K2yzpJ3Nez+GurpAkXEdomCF9CkKQbRRbR+AiZfl6n cJwg0+dhJn70vSwdEyRHlX/39ZZA9v4PC18Ukjf9nY9Bb3vl8M5Mo/g9zHertjPlQcGwOubn 05fuehh7H4kUAPhT0w/6R05gT/lw2e89i7TP/Qxixc00DU6mJX3OEWg23fGt8m22mA92+XQx ZEvAviZSjvj+xL7wP7u9r+4RfNT9N1Ebs9tGXFYIpbBZSKaPFTmzJHILuya+otaFs9DKXRWI 9R3W8sP0YHCEfZpYHoAFfofmC4hZds40z7/msqVJ+2XaPfXsmXCL/juWpYJF3LbPdN87r5UY fqmx3ezTYRofa1pxzZn60fmkFuSUH7qqvKKIdheDlqZI6D3+aQARAQABtC9Mw6lhIEdyaXMg KExhIE5vaXJhdWRlKSA8bGVhLmdyaXNAbm9pcmF1ZGUubmV0PokCOwQTAQIAJQIbAwYLCQgH AwIGFQgCCQoLBBYCAwECHgECF4AFAlAAB+cCGQEACgkQcJRvFoB47VIa2w/7B3S51cvmOPHy rfybG0NdGQzSDRFhvVHXGQC62JMzT+i5fzkRNAk7LCvWS1PBmh79rokf8qhx5xQ/xlBo5IR0 K0yxRXs3Yr90opcu20qKIYjryTqiKkB41XY+oCQXpRqjP2LtkWL52yXMLbqfI4XQ4j2RveE/ HR/+Y4bCtnYZb/O1Y4Cl9gslOK1+xpYWaHHu2yNGgXwFYo4ujryzygmb4i/LMblPHw3nmNTr O4u0jyuejrq7qgrnwM8JQrIuyIOWbdMRPMKOgb8AIsFPLqIvnYcYB8ms/ilcHOjANTE5j/3H ZlvyMbNXsLZKFArnrw9ju6aExXoCx17Y0hkMPH1u7RGCB0Cc62fogB526OZs/bbPmngiuhAk gJbyuUjQzAz44kxuzsG9pkOUSUF/TF7BupG3K4e+RjxKjsdEe1ohsW8Eul+F0XIX1R0i84Jf hO6hVI2iywvEyjd2syEu7uvVBJJeQh5sYuAwLmixPISbS0OjGRiLlgPwejqJIkVElGQTQbLh N0CdHijKtMYYBkhEZjZ+0Mysw2kmRo28z6cdd7wmFpjt57L9Lw4qLP1KvkospnYN5+zBmwaB lHf6TxdkxGCuaviQ6N/PEcIwB3px2aTk/LmIE99vtiihH19PNhIgLXge7JR2tRFVLdfSqs47 YD1oDQY9ZO1h0FtcPKJKs0K5Ag0ETw4dRwEQAKqcD421qgwXKhpyrcb+eTA9UmTTOVTO9MzY cJ9RgACXE3GXdofkhVWzY7/aensghIpxYo+nmKGUS4eixGfPKiZDQPQFFRjBgvkPyKhoui9S x4/96c20+jTQiUlUX0eF5UpZtLBCW7CSPXdQamZbEltXL2Wit41KAP4cysQuvatTKYdVtao1 499lbsbHy5zqrdiV9NAdnPsqKzoKn5GyAEDYQS2OiB6yV2w94ezJUHxoE2zb/b5bHvP7DvqJ GU8vu207h4hgxu77hsByrgDRCazDnEHCYAs12pV3nrebzEVgfZsUvCVKnj+gvV7oFxM1II/8 AICSwcBDn6aGvQISNdzWPTwXdQQwGyur5SKtgnP0tX6DiBFe8xRqQnLBvOcu+E/WVWl3VKzp EHscEoLHCaDbqYPvpz93eFc1sueojnPXnjir6R/fyHlowBuKMcUQJdS5LXXUMAHQw8AdsYVA BjZfTXzGh1LOpEErT0fERtY7Vdi+VgKJWmt5boxxJNtjBMhSq1ZYR/UdMXG6C2Br5Jpl2aPu DwrcwT/HKZCeOKR+usNWQipxRXJ36o/HShc5Z6nWTOK20Txe6+jLzCIwsbhOreRw4SLxWoZS 450rUxIzlGxQ8LQaUl53NE8tQUsqx1LVPlABpqrXN5y8xFph0uNJyB7fzfSDdw9X3Sq8J3+1 ABEBAAGJAh8EGAECAAkFAk8OHUcCGwwACgkQcJRvFoB47VLNMxAAz6Yf92x6wuAgqoYyGNaP BLL9B3Y6LCsds184C3BxHCX4Tf7k7kRWBcWa/SJyNTzbLZBestxH/O28DtA+sdhFx8SOQykg Qx0u3VgRRLIgWRwDhAzCfD8Z9nDMGK4GKOqcHzH4GioQrajGXhKvPvECc8C9tbqkEVapayEa qteNCm1vPEC01+dwg5+xuzAUfsY3Y60wuAHmr+BwDHBrYjrURYsghqnDz9ajmZv4+1bjj7wh IVVPyMwgLCJWgv+Ni2H/s6BffS+NBLdXOxHq1QyKnlYOSHB0WXnBeq3TUAcpU4CejZi7nI6a sFTS7yi7t4rT4xnFiA0FduPoUaaG62Uin4f6XzjZxKLU8GlAuMWbepSXIL+6FQzOjlN/h9jS H9yS721C7O1vjiJJWaVR/oar/dzoxqwRJbz3hyMkg3+P+xFjD/kJ2BApi2ln2mvH0bq75mwV LS60M74u3ryiHGUDgDxO6dUfZ5paBia3+iW99Pfcf9HZtj+4FC861X5fsCwL3oXvEoToJWjX 3GbP7w/7XyYrxprQy+h8f21ouIgIRzNKDgdScCCepf/M9UdotysxW0zEYAv62ywCuSF+1lhU BfU8IvILfMe+rLmasTwsPBkHAJn/oo73R6dda2rkG8RTyLkrvDPbQYzZrYlzlg5TKLUXPPZr I3KbDCDuQHywEBQ= User-Agent: Telnet/1.0 [tlh] (PDP11/DEC) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:910:10c6:1::1 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: Xref: csiph.com gnu.bash.bug:15193 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --UEAnxSZqfXBHG3VOoKZtnu8IBxvhGjBo2 Content-Type: multipart/mixed; boundary="A7ySKijybgB9JpIs4v3u943IJUMy10tLy"; protected-headers="v1" From: =?UTF-8?B?TMOpYSBHcmlz?= To: bug-bash@gnu.org Cc: xaoxx@t-online.de Message-ID: Subject: Re: Unexpected result of array assignment --A7ySKijybgB9JpIs4v3u943IJUMy10tLy Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 18/07/2019 14:12, Greg Wooledge wrote: >=20 > On Thu, Jul 18, 2019 at 10:58:52AM +0200, Henning wrote: >=20 > eval 'foo=3D(["key"]=3D"'"${foo["key"]}"' value2")' >=20 >=20 > If you just want to work around the bug, why not do it in the simpl= est > way possible? >=20 > foo["key"]+=3D" value2" >=20 > Of course, you are right. Can be done safely with storing the intermediate value. declare -A foo foo=3D(["key"]=3D"value1") declare -p foo _v=3D"${foo["key"]}" declare -p _v foo=3D(["key"]=3D"${_v} value2") declare -p foo Still safer than eval for an extra intermediary assignment. And allow you to insert the old value of ${foo=3D["key"]} anywhere=20 in-between. The +=3D string concatenation would not work in this case. --=20 L=C3=A9a Gris --A7ySKijybgB9JpIs4v3u943IJUMy10tLy-- --UEAnxSZqfXBHG3VOoKZtnu8IBxvhGjBo2 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEKpMeKD8gLuW/zE9wcJRvFoB47VIFAl0xHzMACgkQcJRvFoB4 7VKeJA/+NzIFvZiXTv2qW20ypXBtj+ir70qTP8lEtw1m0148GCHs9r5tX+owkd7v MERRfviAbo6pZDTo5VwqNjIapzAwrDnqPOX2/v2afs2IYpGF9XNjZjtxPV2jSt6z HOTdKZ8O2qyBbqqnOQo+iXqVgV3Ebl2mTqsgsXqnI0SEooBShEy2aWjRa3arFxjZ kc6yLh0rm+jNcY3OcviiTGxbAstq/jl4ydigMSiL5Mv9eHeK3VVBi6atwC2Q8Rl1 wEKOeS9ey3XKzjKccVombooAHaARMy81XQfWDOCJN2jJOvhMMAeX7CnLe9Bk6acC FC8ypmpNM1hNnTFjV9SD/oglfuFPsLilndEeTSIiVZTY8A0eVd/2KskVK/tIckcc 0g4F3x4dc53GrOGoZyg800mYWKvzwvLaoQ3VVAsPI+RaPr4IPRZwc5OQaxtlJVfy ++4dro0n26KptavAkta0RmGQ+pkKhZTF3pxM9kgbX3Ef2mxADvNaMI+pNNy9HhBx eYEVm1EaeydUYIAJynRv0Nt5Mjkgbl/mfGyfG2Mi4GiOQK2vpRovZXTOGJzaWIdV zpd/Sc0a8xD6VjWmWRzoHZb7dd/1y8Q6TTHkdBTwwbAaw8bUsYdpxFdQACG6GlQS 6smCA4otJYAfM+s8CuT7R/5uEuLtI7AnTSZOCY8+E51i5zlWjws= =k5QR -----END PGP SIGNATURE----- --UEAnxSZqfXBHG3VOoKZtnu8IBxvhGjBo2--