SC1136 – ShellCheck Wiki

See this page on GitHub

Sitemap


Unexpected characters after terminating ]. Missing semicolon/linefeed?

Problematic code:

if [ -e "foo.txt" ]: then
  echo "Exists"
fi

Correct code:

if [ -e "foo.txt" ]; then
  echo "Exists"
fi

Rationale:

ShellCheck found unexpected characters after the ] or ]] in a test expression. In the example, a colon was accidentally used instead of a semicolon.

Similarly, a missing space before a comment ([ -e foo ]#comment), an additional square bracket ([[ -e foo ]]]), or a missing semicolon before a then on the same line (if [ foo ]then) can cause this warning.

Make sure the ] or ]] is not immediately followed by another shell word character.

Exceptions:

None


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