seems like it would be helpful to explain this behavior more clearly in the man page.
On Wed, Feb 28, 2018 at 12:14 PM, Chet Ramey <chet.ra...@case.edu> wrote: > On 2/28/18 3:00 PM, Greg Wooledge wrote: > > > Does unset create some kind of "placeholder" in the current function > > (but not in a caller)? > > Yes, that's what I said. In the current scope, unset arranges for the > variable to appear unset. In a previous scope, unset just removes the > variable, which uncovers an instance of the variable at a (further) > previous scope. > > It looks like I added that code in 1995. The code before that was "pure" > dynamic scoping, in the sense that it just removed the variable and > `uncovered' a previous scope's value no matter where the variable was > declared. It seems like I added the special case for several reasons, > but there's no indication of widespread user complaint about the behavior > of `unset'. (Of course, that was a long time ago.) > > -- > ``The lyf so short, the craft so long to lerne.'' - Chaucer > ``Ars longa, vita brevis'' - Hippocrates > Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/ > >