Found a test expression [ ... ]
(POSIX) or [[ ... ]]
(ksh/bash) 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 ]]
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 ]]