SC2096 – ShellCheck Wiki

See this page on GitHub


On most OS, shebangs can only specify a single parameter.

Problematic code:

#!/usr/bin/env bash -x

Correct code:

#!/usr/bin/env bash
set -x


Most operating systems, including POSIX, Linux and FreeBSD, allow only a single parameter in the shebang. The example is equivalent to calling env 'bash -x' instead of env 'bash' '-x', and it will therefore fail.

The shebang should be rewritten to use at most one parameter. Shell options can instead be set in the body of the script.


macOS X currently allows multiple words in the shebang. Scripts running on OSX exclusively can ignore this warning.

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