4 SC2113
Vidar Holen edited this page 2021-07-25 13:17:33 -07:00

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

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