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


Groups > gnu.bash.bug > #14078

Re: [BUG] 'unset' fails silently under specific conditions

From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: [BUG] 'unset' fails silently under specific conditions
Date 2018-05-01 21:20 -0400
Organization ITS, Case Western Reserve University
Message-ID <mailman.13236.1525224063.27995.bug-bash@gnu.org> (permalink)
References <a16a34cf-eea7-16b8-76d8-e05d0fe2cc32@inlv.org> <1295e1ea-73c0-e479-da03-b784ec975030@inlv.org> <59161dc5-bb33-d842-4af3-477e8784a4f5@inlv.org> <71d753dc-036f-7fd7-d703-408c3f8ac202@case.edu> <48f7a2c2-70ce-0994-33e0-6b2282a3b5f6@inlv.org>

Show all headers | View raw


On 5/1/18 6:27 PM, Martijn Dekker wrote:
> Op 01-05-18 om 19:36 schreef Chet Ramey:
>> OK, so which is it? Does an assignment statement preceding a special
>> builtin in a shell function create a local variable (as we discussed
>> just yesterday)
> 
> Huh? That was about 'typeset'/'declare'. How is that relevant here?

Do you really not remember? Let's roll tape.

You complained that `typeset +x' didn't `unexport' a variable. The reason
is that the variable assignment preceding the special builtin caused a
variable to be created at the global scope, and the `typeset' resulted in
a local variable being created. The upshot of that discussion was that in
order to implement the semantics you said you wanted at the time,

> 
>>  or does it create a global variable because `Posix'?
> 
> Yes. POSIX does not specify local variables at all, and even in a bash
> context I see nothing there to indicate that it should be local.

Maybe in Posix mode. It's true that Posix doesn't specify local
variables, and I made that same point yesterday, but I can see where
an assignment statement preceding a special builtin can create a
variable at the same context.

> The possibility that 'foo=bar :' might create a variable 'foo' that
> survives the ':' command, is exported, *and* is local to the function,
> hadn't occurred to me at all. POSIX is pretty strange sometimes but not
> *this* strange.

It would have had to to satisfy the semantics of your report from a
couple of days ago, and, as I said in my message yesterday, I ultimately
implemented those semantics.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

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


Thread

Re: [BUG] 'unset' fails silently under specific conditions Chet Ramey <chet.ramey@case.edu> - 2018-05-01 21:20 -0400

csiph-web