Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Is there a way to set a var above it's current scope?



Yes I know, also one can use local at global scope to have the same effect as typeset -g there, this is a direct effect of how scopes are implemented.

sob., 18 lut 2023, 16:30 użytkownik Roman Perepelitsa <roman.perepelitsa@xxxxxxxxx> napisał:
On Sat, Feb 18, 2023 at 3:57 PM Sebastian Gniazdowski
<sgniazdowski@xxxxxxxxx> wrote:
>
> Somewhere in the man I saw something like: if you use export you'll
> always set in global scope, regardless of any local variable
> collision.

You might be confusing it with the fact that `typeset -x q` is
equivalent to `typeset -gx q` and `export q` when used within a
function, even though normally `typeset` within a function is
equivalent to `local`.

> Is there any way of achieving this?

If there is a variable in function scope, there is no way to do
anything with the identically-named variable in global scope.

    q=42

    () {
      local q;
      # Nothing you can do here will have any
      # effect on the global `q`.
    }

Roman.


Messages sorted by: Reverse Date, Date, Thread, Author