making a variable local counts as a statement as per $?

Luca Saiu <[email protected]>
Newsgroups gmane.comp.shells.bash.bugs
Message-ID <[email protected]>
Hello.

I was surprised to discover that the following two lines behave
differently:


  f () { a=$(false); echo $?; }; f         # This prints 1 as expected

  f () { local a=$(false); echo $?; }; f   # This prints 0

The way I interpret this is that making the variable local “counts as a
statement”, and overwrites the value of $? with 0, since making the
variable local succeeds.  Is this correct?  Is this the intended
semantics?  I certainly find it counterintuitive, and cannot see it
being documented.

Thanks, and thanks for your precious work on Bash.

--  
Luca Saiu      https://ageinghacker.net
  GNU Jitter     https://www.gnu.org/software/jitter
  GNU epsilon    https://www.gnu.org/software/epsilon
  pEp-mail-tool  https://codeberg.org/pEp/pEp-mail-tool

I support everyone's freedom of mocking any opinion or belief, no
matter how deeply held, with open disrespect and the same unrelented
enthusiasm of a toddler who has just learned the word "poo".
sender_key.asc (application/pgp-keys, 3.9 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: 102C 0F17 971A 852D 1A6E  30A2 3815 1583 C3C7 C7A8
Comment: Luca Saiu <[email protected]>

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
=RVlb
-----END PGP PUBLIC KEY BLOCK-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.