local
is only valid in functions.local foo=bar
echo "$foo"
foo=bar
echo "$foo"
In Bash, local
can only be used in functions. In other contexts, it's an error.
It's possible to source files containing local
from a function context but not from any other context. This is not good practice, but in these cases you can ignore this error.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.