SC3049 – ShellCheck Wiki

See this page on GitHub


In POSIX sh, using lower/mixed case for signal names is undefined.

Problematic code:

trap 'handle_sigint' int

Correct code:

trap 'handle_sigint' INT


POSIX requires that signal names be given in uppercase:

The condition can be EXIT, 0 (equivalent to EXIT), or a signal specified using a symbolic name, without the SIG prefix, as listed in the tables of signal names in the <signal.h> header defined in XBD Headers; for example, HUP, INT, QUIT, TERM. Implementations may permit names with the SIG prefix or ignore case in signal names as an extension.



ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.