bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nameref and referenced variable scope, setting other attributes (was


From: Chet Ramey
Subject: Re: nameref and referenced variable scope, setting other attributes (was "local -g" declaration references local var in enclosing scope)
Date: Mon, 18 Mar 2024 16:19:55 -0400
User-agent: Mozilla Thunderbird

On 3/14/24 8:57 PM, Zachary Santer wrote:
On Thu, Mar 14, 2024 at 3:43 PM Chet Ramey <chet.ramey@case.edu> wrote:

In fact, before 2020, local -p with no name arguments behaved the same as
local without arguments, which just printed all the local variable names at
the current scope in the form of assignment statements. That was certainly
not usable to reproduce the current state.

While we're kind of on the subject, I find it really odd that the
${var@A} parameter expansion will expand to either an assignment
statement or a 'declare' command, depending on whether or not the
variable has an attribute set.

Yes. There is one thing missing: the transformation should expand to a
`declare' command when applied to a local variable at the current scope,
even if there are no attributes to be displayed. Agreed?

I am less convinced about outputting a `-g' for a global variable when
called from a function scope, but I could be persuaded.

Because of dynamic scoping, users will always have to be careful about
using this expansion on variables that might be local variables at a
previous function scope. I suppose it depends on the desired meaning of
`recreate parameter'.


You'd think you'd want a parameter transformation that always expands
to a 'declare' command, and maybe another one that always expands to
an assignment statement.

Most of the time there isn't a difference between `declare a=b' and `a=b'.

--
``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/

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]