Skip to content
koalaman edited this page Feb 21, 2017 · 5 revisions

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

Rationale:

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.

Exceptions

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

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally