Skip to content
Joachim Ansorg edited this page Nov 12, 2021 · 2 revisions

Unexpected parameters after condition. Missing &&/||, or bad expression?

Problematic code:

[ "$1" ] input="$1"

Correct code:

[ "$1" ] && input="$1"

Rationale:

ShellCheck found characters (other than redirections) after the ] or ]] in a test expression. This is not valid.

This sometimes happens when there was an additional expression or command, but joining || or && is missing. Alternatively, it could happen due to typos (like [[ $1 ]]] with an extra ]), or generally from malformed test expressions.

Exceptions:

None

Related resources:

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

ShellCheck

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

Clone this wiki locally