Skip to content
Vidar Holen edited this page Jul 25, 2021 · 4 revisions

function keyword is non-standard. Use foo() instead of function foo.

Problematic code:

#!/bin/sh
function hello {
    echo "Hello World"
}

Correct code:

#!/bin/sh
hello() {
    echo "Hello World"
}

### Rationale:

`function` is a non-standard keyword that can be used to declare functions in Bash and Ksh.

In POSIX `sh` and `dash`, a function is defined without a `function` keyword. Instead, the function name is followed by `()` as in the correct example.

### Exceptions:

None

### Related resources:

* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally