SC3049 – ShellCheck Wiki

See this page on GitHub

Sitemap


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

Problematic code:

trap 'handle_sigint' int

Correct code:

trap 'handle_sigint' INT

Rationale:

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.

Exceptions:

None


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