How can I declare variables which are local to functions? Regularly declared vars get exported into global scope. Example:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
Use local
:
local x=bar
Then, x
will be local to the function. To declare e.g. arrays or numbers, local
takes the same options as declare
. Output will be two empty lines:
#!/bin/bash
function locals_test()
{
local x=bar
}
echo $x
locals_test
echo $x