You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ksh allows two ways of defining functions: POSIX sh style foo() { ..; } and Ksh specific function foo { ..; }.
ShellCheck found a function definition that uses both at the same time, function foo() { ..; } which is not allowed. Use one or the other.
Note that the two are not identical, for example:
Using typeset in a function foo will create a local variable, while in foo() it will create a global variable.
function foo has its own trap context, while foo() shares them with the current process.
function foo will set $0 to foo, while foo() will inherit $0 from the current process.
Exceptions:
In Bash, function foo() { ..; } is allowed, and function foo and foo() are identical. This warning does not trigger when the shebang is e.g. #!/bin/bash.
Related resources:
Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!