I have a empty variable. When I do
if [[ -z "$value" ]]; then echo "hello"; fi
if [[ -z \"$value\" ]]; then echo "hello"; fi
It is because the in the first statement, the variable is expanded and the resulting statement is null.
Whereas in the second it expands to
"". To see the difference consider the two echo statements,
$ echo "$value" $ echo \"$value\" ""
The first one is null where as the second is not.