This will return true if a variable is unset or set to the empty string (“”).
if [ -z "${VAR}" ];
Here is the same thing but in handy table form:
+-------+-------+-----------+ VAR is: | unset | empty | non-empty | +-----------------------+-------+-------+-----------+ | [ -z "${VAR}" ] | true | true | false | | [ -z "${VAR+set}" ] | true | false | false | | [ -z "${VAR-unset}" ] | false | true | false | | [ -n "${VAR}" ] | false | false | true | | [ -n "${VAR+set}" ] | false | true | true | | [ -n "${VAR-unset}" ] | true | false | true | +-----------------------+-------+-------+-----------+