On Sun, Mar 10, 2024 at 06:39:19PM -0400, Lawrence Velázquez wrote: > On Sun, Mar 10, 2024, at 5:36 PM, Greg Wooledge wrote: > > Here it is in action. "local -g" (or "declare -g") without an assignment > > in the same command definitely does things. > > > > hobbit:~$ f() { declare -g var; var=in_f; } > > hobbit:~$ unset -v var; f; declare -p var > > declare -- var="in_f" > > This example appears to work the same without "declare -g": > > $ f() { var=in_f; } > $ unset -v var; f; declare -p var > declare -- var="in_f"
The impetus for adding it was that you *have* to declare associative arrays. If you want to create a global associative array from within a function, you need the -g option. For regular variables, it's mostly redundant, yes.