Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15235

errata: Explicit variables declaration statements do not resolve back-references from same statement

Path csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Léa Gris <lea.gris@noiraude.net>
Newsgroups gnu.bash.bug
Subject errata: Explicit variables declaration statements do not resolve back-references from same statement
Date Wed, 24 Jul 2019 20:06:31 +0200
Lines 106
Approved bug-bash@gnu.org
Message-ID <mailman.2160.1563991602.2688.bug-bash@gnu.org> (permalink)
References <6660abea-7cca-22d4-fcd5-8a3f0743fbd3@noiraude.net>
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="2uwohqV9rlgz3969yEpGC3yfuU1mo94hR"
X-Trace usenet.stanford.edu 1563991603 7034 209.51.188.17 (24 Jul 2019 18:06:43 GMT)
X-Complaints-To action@cs.stanford.edu
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:To: Subject:From:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=1dBxlxpMtUcSoE8+snz94IRt9fLA2X3y3ngD5QIt4k0=; b=hHvdYYIoZXjBOKQ3nJojsuRzOI 48c/o3ng26oMRz1EY6oqd0U5Z/hHuBFuhbG4lvYdZ/0CdDjAYPFF12418eJHnNn4+B2HQtyGESuZi 4Y3YnytKTi1FVXDWFrS8WXGZojzHLsAxVZUenptBbkJe6VqDGS4wRIQw4frFDHVKhEeIVAkbL/ZwB xqkUukjwZFaUaPyxBvViOEPNDD0I3g4V4AfwhVojOkaPYvvoYfGICHpzyj7TGb1m299T3g0Pc9etd z6jRoYknR7KQyLxgCkcHF0Jj+EGu8tfNZR8BKnXyWgi3lhbeRpju6t2kQ8rM9KAWTafvUJbjPvAvz SMMtR72w==;
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 <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 <6660abea-7cca-22d4-fcd5-8a3f0743fbd3@noiraude.net>
Xref csiph.com gnu.bash.bug:15235

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

Found this strange behavior difference in Bash, between explicit and 
implicit declarations of variables.

An implicit variables declaration statement resolve back-references to 
variables from the same statement.

Whereas:

An explicit variables declaration statement does not resolve 
back-reference variables from the same statement.

Illustration code:

==== knip code start
#!/usr/bin/env bash

unset a b c
printf $'\nExplicit declarations statements:\n'
printf $'\ntypeset -i a=2 b=$a c="$((a - 1))":\n=> '
typeset -i a=2 b=$a c="$((a - 1))"
printf 'a=%d b=%d c=%d\n' "${a}" "${b}" "${c}"
unset a b c
printf $'\ndeclare a=hello b=world c="$a $b":\n=> '
declare a='hello' b='world' c="${a} ${b}"
printf $"a='%s' b='%s' c='%s'\\n" "${a}" "${b}" "${c}"

unset a b c
printf $'\nImplicit declarations statements:\n'
a=2 b=$a c="$((a - 1))"
printf $'\na=2 b=$a c="$((a - 1))":\n=> '
printf 'a=%d b=%d c=%d\n' "${a}" "${b}" "${c}"
unset a b c
a='hello' b='world' c="${a} ${b}"
printf $'\na=hello b=world c="$a $b":\n=> '
printf $"a='%s' b='%s' c='%s'\\n" "$a" "$b" "$c"
==== knip code end

Output:
> bash ./test_declare.sh 
> 
> Explicit declarations statements:
> 
> typeset -i a=2 b=$a c="$((a - 1))":
> => a=2 b=0 c=-1
> 
> declare a=hello b=world c="$a $b":
> => a='hello' b='world' c=' '
> 
> Implicit declarations statements:
> 
> a=2 b=$a c="$((a - 1))":
> => a=2 b=2 c=1
> 
> a=hello b=world c="$a $b":
> => a='hello' b='world' c='hello world'


ksh93 resolves explicit back-references with typeset.

-- 
Léa Gris



Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

errata: Explicit variables declaration statements do not resolve back-references from same statement Léa Gris <lea.gris@noiraude.net> - 2019-07-24 20:06 +0200

csiph-web