[shell] unary operator expected in shell script when comparing null value with string

I have two variables

var=""
var1=abcd

Here is my shell script code

if [ $var == $var1 ]; then
  do something
else
  do something
fi

If I run this code it will prompt a warning

[: ==: unary operator expected

How can I solve this?

This question is related to shell

The answer is


Why all people want to use '==' instead of simple '=' ? It is bad habit! It used only in [[ ]] expression. And in (( )) too. But you may use just = too! It work well in any case. If you use numbers, not strings use not parcing to strings and then compare like strings but compare numbers. like that

let -i i=5 # garantee that i is nubmber
test $i -eq 5 && echo "$i is equal 5" || echo "$i not equal 5"

It's match better and quicker. I'm expert in C/C++, Java, JavaScript. But if I use bash i never use '==' instead '='. Why you do so?