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.
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.