Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: =?UTF-8?B?TMOpYSBHcmlz?= Newsgroups: gnu.bash.bug Subject: Explicit variables declaration statements do not resolve back-references from same statement Date: Wed, 24 Jul 2019 20:01:28 +0200 Lines: 103 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="ChEMl3bRW51QmbkCL2wrCSgv10CV0a8xf" X-Trace: usenet.stanford.edu 1563991303 6882 209.51.188.17 (24 Jul 2019 18:01: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: Subject:From:To: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=UbK3GFFtk5xBkkpC2M0irwA+KfL8wKJE2jBsSR8qmPA=; b=GGiCGffwsog1gUm6Cz6TR+QDEv 38ja7LqCllKmmSAQ5uMB6qr+e5yNHglrQOYYlrpzykgIwYOIKiY2iNiNSv4RCTGd6+/JGCGOUdm+P /0T2ST00KLTjQlAZg6FFB7FQ9UiHM0VcaEtYBYI04PudJQHBVdS2vS5w8A/qCPyW/fIzl7L+nhF8C aav50p5MGrIO1jU7a6jqUuC9EAeCkEjgPApHSUm4fDqr9nebChYHpGtrojsQE0hEUijg3C/LgouIS dHhOMSF/i0me5y7IYQN9E+2YiWaDtSgRYJHBCGIkhM/z0f7r1r8XTW8gHNkOg67Joi8AXZrAh3QEq e/WuVS0w==; Openpgp: id=2A931E283F202EE5BFCC4F7070946F168078ED52; url=https://www.noiraude.net/8078ED52.asc Autocrypt: addr=lea.gris@noiraude.net; prefer-encrypt=mutual; keydata= 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 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:15234 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --ChEMl3bRW51QmbkCL2wrCSgv10CV0a8xf Content-Type: multipart/mixed; boundary="Vf62wlhQ10lxYxTyp7fNp7EOZppXGYQoB"; protected-headers="v1" From: =?UTF-8?B?TMOpYSBHcmlz?= To: bug-bash@gnu.org Message-ID: Subject: Explicit variables declaration statements do not resolve back-references from same statement --Vf62wlhQ10lxYxTyp7fNp7EOZppXGYQoB Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable Found this strange behavior difference in Bash, between explicit and=20 implicit declarations of variables. An implicit variables declaration statement resolve back-references to=20 variables from the same statement. Whereas: An explicit variables declaration statement does not resolve=20 back-reference variables from the same statement. Illustration code: =3D=3D=3D=3D knip code start #!/usr/bin/env bash unset a b c printf $'\nExplicit declarations statements:\n' printf $'\ntypeset -i a=3D2 b=3D$a c=3D"$((a - 1))":\n=3D> ' typeset -i a=3D2 b=3D$a c=3D"$((a - 1))" printf 'a=3D%d b=3D%d c=3D%d\n' "${a}" "${b}" "${c}" unset a b c printf $'\ndeclare a=3Dhello b=3Dworld c=3D"$a $b":\n=3D> ' declare a=3D'hello' b=3D'world' c=3D"${a} ${b}" printf $"a=3D'%s' b=3D'%s' c=3D'%s'\\n" "${a}" "${b}" "${c}" unset a b c printf $'\nImplicit declarations statements:\n' a=3D2 b=3D$a c=3D"$((a - 1))" printf $'\na=3D2 b=3D$a c=3D"$((a - 1))":\n=3D> ' printf 'a=3D%d b=3D%d c=3D%d\n' "${a}" "${b}" "${c}" unset a b c a=3D'hello' b=3D'world' c=3D"${a} ${b}" printf $'\na=3Dhello b=3Dworld c=3D"$a $b":\n=3D> ' printf $"a=3D'%s' b=3D'%s' c=3D'%s'\\n" "$a" "$b" "$c" =3D=3D=3D=3D knip code end Output: > Explicit declarations statements: >=20 > typeset -i a=3D2 b=3D$a c=3D"$((a - 1))": > =3D> a=3D2 b=3D2 c=3D1 >=20 > declare a=3Dhello b=3Dworld c=3D"$a $b": > =3D> ./b.sh[10]: declare: not found [Aucun fichier ou dossier de ce typ= e] > a=3D'' b=3D'' c=3D'' >=20 > Implicit declarations statements: >=20 > a=3D2 b=3D$a c=3D"$((a - 1))": > =3D> a=3D2 b=3D2 c=3D1 >=20 > a=3Dhello b=3Dworld c=3D"$a $b": > =3D> a=3D'hello' b=3D'world' c=3D'hello world' ksh93 resolves explicit back-references with typeset. --=20 L=C3=A9a Gris --Vf62wlhQ10lxYxTyp7fNp7EOZppXGYQoB-- --ChEMl3bRW51QmbkCL2wrCSgv10CV0a8xf Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEKpMeKD8gLuW/zE9wcJRvFoB47VIFAl04nPgACgkQcJRvFoB4 7VJpuBAArwPtPMFMDm8SOt4dmzdjmBPn48l3lGgakiDr5VFWETDlvG3KQLVafbV1 xg2ILlLNOQM7EoStB4/uDgYHMluLYONyZYGKxng4W8p3ynt6ZtnycqJYlFgMKrry PJIaLFmsEeQZPEy3rPIvC0fdvV5WDqeiuGjzssn9US5V4QQ/zJ9U4uoK2UcmbI8Y VNdEDrmB7kB5wpg0gKiokatcpn2wn5bZUY0Ffw4woAuTMtdF/eSqha60qWHVFW3B IgGoqlWr3hYPp4WwxygrgQbSN88QUzNnDuVK8O+SJ+XldPO1xE1S6/tDP+/Thxvt pNflIOH5srbbA1vVri7CQnxOKvBjMzjlc6YWV/yjJgaKIHzWtgztkYzowW+t0kj9 vhE1Ph7eVIOflMjcFbJqQq7psB5/4sz1ouYs6AxdQMoNIBpSGA4SAfDzRnhkUn3o F2tBuSswnUbaZVBZ0+hbvdUnq0ZwH2zWEx24suGzsujbkJSHl5ZWedtdlUgREnnc d7M1Cb4gVNx4Hh3pP7DvIHbd9nTYYYmKBVokJjwNoYmRreWGVGDpiLTU65CivX5S cZ9DSNYm/v7Avu4OB5nNq7tm//D9ye/ngnEdJ1pS4Mzm+oDkAizIiEt/85/EyA8X XT/lSAaLWwNhi/47FRWo6g52mKnMACoHPupH6Em8jcvG3taHKkM= =p7nL -----END PGP SIGNATURE----- --ChEMl3bRW51QmbkCL2wrCSgv10CV0a8xf--