{
.foo() {echo "hello world"; }
foo() { echo "hello world"; }
{
is only recognized as the start of a command group
when it's a separate token.
If it's not a separate token, like in the problematic example, it
will be considered a literal character, as if writing
"{echo"
with quotes, and therefore usually cause a syntax
error.
None.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.