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