[[
but closed with single ]
. Make sure they match.(or SC1034 for vice versa)
[[ -z "$var" ]
[[ -z "$var" ]]
ShellCheck found a test expression [ ... ]
(POSIX) or [[ ... ]]
(ksh/bash), but where the opening and closing brackets did not match (i.e. [[ .. ]
or [ .. ]]
). The brackets need to match up to work.
Note in particular that [..]
do not work like parentheses in other languages. You can not do:
# Invalid
[[ x ] || [ y ]]
You would instead use two separate test expressions joined by ||
:
# Valid basic test expressions (sh/bash/ksh)
[ x ] || [ y ]
# Valid extended test expressions (bash/ksh)
[[ x ]] || [[ y ]]
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.