1 SC2329
Vidar Holen edited this page 2024-05-04 14:44:08 -07:00

This function is never invoked. Check usage (or ignored if invoked indirectly).

Problematic code:

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

Correct code:

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

Rationale:

ShellCheck found a function that goes out of scope before it's ever invoked. Verify that the function is called. It could be misspelled, or its invocation could also be unreachable (as in f() { ..; }; exit; f).

Note that if the example script did not end in exit, this warning would not be emitted. This is because the function could be invoked by another script that sources it.

Exceptions:

ShellCheck is currently bad at figuring out functions that are invoked via trap. In such cases, please ignore the message with a directive.

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