[ "$var"= 2 ]
[ "$var" = 2 ]
You appear to be missing the space on the left side of the operator. Shell in general, and
[ in particular, is space sensitive. Operators and operands must be separate tokens.
Please ensure that the operator, like the
= in the example, has a space both before and after it.
None. If you're comparing values in C style reverse order like
[ -eq == $1 ], use quotes:
[ "-eq" == "$1" ]. Also, it's pointless since
[ a = b ] doesn't assign.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.