SC2060 – ShellCheck Wiki

See this page on GitHub

Sitemap


Quote parameters to tr to prevent glob expansion.

Problematic code:

tr -cd [:digit:]

Correct code:

tr -cd '[:digit:]'

Rationale:

From the shell's point of view, unquoted [:digit:] is a glob equivalent to [digit:] that matches any single character filename from the group, such as d or t, in the current directory.

If someone starts learning D and creates a directory named d to hold the source code, the glob will be expanded and the script will end up executing tr -cd d instead, which is clearly unintended.

Quoting the argument prevents this, and will pass it correctly as the literal string [:digit:] no matter which files exist in the current directory.

Exceptions

None


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