Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Eli Schwartz Newsgroups: gnu.bash.bug Subject: Re: set -e ignored in subshell if part of command list Date: Thu, 14 Nov 2019 18:16:24 -0500 Lines: 97 Approved: bug-bash@gnu.org Message-ID: References: <13040a55-507d-e072-e827-be7c33be968f@case.edu> <1573772541.924.11.camel@debian.16bits.net> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Vul2RclUoPftRmz68LvbOTf7J1aw0MJ5h" X-Trace: usenet.stanford.edu 1573773403 1135 209.51.188.17 (14 Nov 2019 23:16: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; c=relaxed/simple; d=archlinux.org; s=orion; t=1573773387; bh=xhuKI6wvw3/hpYaMt5p4orQTAVgSP62HmJsiubpjE/k=; h=Subject:To:References:From:Date:In-Reply-To; b=BQntkRsVmNsj4qaHKUKi7SEils0S4kRrrnLamly0n1jOeMWx8qCkaj2VUd+KKqDGo n8qMQ8FPc6AfSz+0o7NbDcrnJPIwWsdA+E6cWWWf/zMjtpeQGJQMhzdLZ87Ni87n/h SIt9qaXdcI6TLqShcnQq0skhjQXImcFprJTHxUmUumKGg481LguAXgVyoSXmFV/2pv mjohuODqFU3wFVUi+ACXv9eFeD89l2NCKwBPvOzkbNrOJf7SVg6lClBgEu8c52dw+7 if8L07/lm0XWmxyRMqGYq4/Ze+gtS4kjft+ao1pFHf0z8lu7qkoY+F3IBEaobu5MhC YU8fyx4+I/q1BXJb5a40ojAy+I/EdzpQZKj6K52tSnEmfmUnhZe7vgHVzBpOYvwFTs aKY3kUQHPQv+fK/dU8+4l0533O3GpPy2cQAiMyF/7P4pdEIzdQh9kklqPkYLsc1TEf RrE1PXvgv5eriXKDZjT7kZNtXcJqWEYbuMIxaUfRtNQAKZqKbcsmvQekaidJs5vdkQ 1gJgR05+4MF4uYaOAlMhzpEeYEY58TzfBh/74dpF6xh+/U16ft3mz0pnJUwIiToWZb /Y1seeg4DYOy+THwO1Zk8rdOwVYwjSeW7Z9yGZYHSdLM3ryOz80NdTjfgvXZiNvjqX tSyWYWdHnr8Kwn7tv7m5GC7g= X-Clacks-Overhead: GNU Terry Pratchett User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 In-Reply-To: <1573772541.924.11.camel@debian.16bits.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a01:4f8:160:6087::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: X-Mailman-Original-References: <13040a55-507d-e072-e827-be7c33be968f@case.edu> <1573772541.924.11.camel@debian.16bits.net> Xref: csiph.com gnu.bash.bug:15598 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Vul2RclUoPftRmz68LvbOTf7J1aw0MJ5h Content-Type: multipart/mixed; boundary="9stn4c2sAWKalXdWuorfONuSd1Xx7tzZd" --9stn4c2sAWKalXdWuorfONuSd1Xx7tzZd Content-Type: text/plain; charset=iso-8859-15 Content-Language: en-US-large Content-Transfer-Encoding: quoted-printable On 11/14/19 6:02 PM, =C1ngel wrote: > I would say that the confusing part is that the behavior of the subshel= l > is dependant on *where* it is being executed in the parent. >=20 > In general terms, I would expect > ( ) > to be roughly equivalent to=20 > bash -c "" >=20 > i.e. being executed on its own context and unable to affect the > parent But that's totally wrong for *numerous* reasons. > but the provided case shows that=20 > ( set -e; false; echo here ) && echo bar > behaves differently than > bash -c "set -e; false; echo here" && echo there What about var=3Dvalue; (echo "$var") which behaves differently from var=3Dvalue; bash -c 'echo "$var"' or, func() { echo "hi there"; }; (func) which behaves differently from func() { echo "hi there"; }; bash -c 'func' > since the initial subshell has an advanced knowledge that there will be= > a later command joined by an and. An initial subshell has advanced knowledge about lots of things from the parent shell, it is deeply, worryingly dangerous to write code that doesn't take this into account. Things will tend to go pretty badly wrong= =2E --=20 Eli Schwartz Arch Linux Bug Wrangler and Trusted User --9stn4c2sAWKalXdWuorfONuSd1Xx7tzZd-- --Vul2RclUoPftRmz68LvbOTf7J1aw0MJ5h Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEvSewel70XCra9w4EhIGKaBmvSpsFAl3N4EkACgkQhIGKaBmv SpuMYxAAufuNGqr2ksE3O/XyZkaSVAU7eVGsLOXxdX5LgY5RE1o7vHdJoCCsJzIT x0DZ7sOrPqDb8ii098Fqd1bXn6V1haRPITAVeUxJAGUQMtaHjWvsfIEamIvq4CgL +bGXzSEB+0NCBPzwo8fjYGEy3m3oXOUHSoVkK/+QtRZJwZbdTxr9yVlhTC//hi4Q 6nm133hQyBoG9/JOzfWXM/WMqs9V6DhNXXNAjSiZniLVBRyFsunl1OgpdU5b6HVM yCSyOp+t+Lv3nkvkDeE9m1WiDCRjS24HBiZnKDcAfCp5sYGqQvw2aD3zMMgGfdtP sv67RGDE1nKzl8KN9wpqCJEStaona9hFj28t832Oef6VhOG2VwpQPybtAEgvbzU1 mhKfksYzsxt2dob7H4OrmA5tZxR4Xhtn6LWH4bjwl9KCD8qlRg5NYqvGjRP+WJQl muKPwW3yyecNuXTToM6H4RLfcuCWqhpd5gbxkONAIKU/IVeLSMwVz34fLuVR6tzp iHm8GR6eYixAjWhXDt7PJBiI5dJyTZvclqZdCawi964dRESiSXz3Td6AWcHBY2tD nRaDF0+ssgm24bIuuzuXuKNZG3nfAI0EKPygEhGJUwS8OOexPtNSPcP2sq3c1dTq nGa0rEMohIxxlln3IsUzcgpC24aulyr49xz+VvIP3zo5mzBz3sWJAjMEAQEKAB0W IQRgQRMEwJ02YoNA7v/OsWfvtXIr1gUCXc3gSQAKCRDOsWfvtXIr1si6D/0Ww975 KxQT2ENfiJHPJWaWa1dhhBtsr6wJoCyS0CSRZcM8noSv1XWCnbvGkhELX+xs+VM9 oog1POfdJ15N9ZhhIH/m5IS25vAgto0FOpyX8y7GCIgj/n4AluX27r1BtjARGsXp ZZbC93g+jq5EOR/qaddfm11FD54Pnue2RZCzgg9p8Svdimu43QxKuyVMtk4L52cW fmsfVI2+6T96Q5Hsi4GOJw5pGEMIIoLcdNUlhnl78lUQTHJEgvPp2vBQw0Rz+6uY O8HzJVYknhkQ8NLH5UORZ630dPF2sIzSIn1j+cgeaSWqiFLC5kxlpbIafOyOhGEv 5BBC050/MQmKyHcemjql2R7j/d9leCBlmVKnYyyEgouJVC+RiXnTXTfMVnDtmHTa B+Iq4+1TzUN+zSWkgRwNg0PVrrBIesftYvjxtxOoExxXm8gbkFvGTBRb+ORF5eM2 SVoEFY9gY2hDndCTBBCeUpvXeVOHAVPwINVPBSYwecvfiJueKGMu64KdGOY1uJeQ 4HCRRRJjKJAASXa8XFiyIk2QVySITOjwcl6b2wnm7QX7ROjHndSaa9TzVDFYYBMa ngkjpWm/ZvzqW+p2Z6HxgzdOPf0u5o5en7WRO5XaHDFR0QRXEEVwDAXixZubbGMH +hlaKsggzG40U1GK1fl1ch93fxmcFo5WHeZ/BA== =O0Br -----END PGP SIGNATURE----- --Vul2RclUoPftRmz68LvbOTf7J1aw0MJ5h--