Skip to content
Syahrial Agni Prasetya edited this page Dec 5, 2022 · 14 revisions

Ignoring errors

To ignore a ShellCheck error, you can do one of three things:

Ignoring one specific instance in a file

Use a directive to disable a certain instance:

hexToAscii() {
  # shellcheck disable=SC2059
  printf "\x$1"
}

You can pass multiple errors to directive:

# shellcheck disable=SC2116,SC2086
hash=$(echo ${hash})    # trim spaces

Ignoring errors in one specific run

Use a -e flag to disable a specific error when running shellcheck:

$ shellcheck -e SC2059 myscript

Ignoring one or more types of errors forever

As of v0.7.0 you can create a file .shellcheckrc in your home directory (or your project's base directory), and add disable directives to it:

# ~/.shellcheckrc
disable=SC2059,SC2034 # Disable individual error codes
disable=SC1090-SC1100 # Disable a range of error codes

In earlier versions, you can set the environment variable SHELLCHECK_OPTS in your .bashrc, /etc/profile or equivalent:

export SHELLCHECK_OPTS="-e SC2059 -e SC2034 -e SC1090"

Ignoring one or more types of error with ShellCheck in Docker

Pass it to Docker directly:

docker run -e SHELLCHECK_OPTS="-e SC2059 -e SC2034 -e SC1090" -v "$PWD:/mnt" koalaman/shellcheck myscript

Optionally you can set the SHELLCHECK_OPTS variable in shell:

export SHELLCHECK_OPTS="-e SC2059 -e SC2034 -e SC1090"

and then pass it to Docker:

docker run -e SHELLCHECK_OPTS -v "$PWD:/mnt" koalaman/shellcheck myscript

Ignoring all instances in a file (0.4.4+)

Add a directive at the top of the file:

#!/bin/sh
# shellcheck disable=SC2059

Note that the directive must be on the first line after the shebang with versions before 0.4.6. As of 0.4.6 comments and whitespace are allowed before file-wide directives.

Ignoring all errors in a file (0.8+)

Add a directive at the top of the file:

#!/bin/sh
# shellcheck disable=all

Note that the directive must be on the first non-commented/non-whitespace line after the shebang with versions after 0.4.6.