Tips on how to Decide if a Bash Variable is Empty

If you want to verify if a bash variable is empty, or unset, then you should utilize the next code:

if [ -z "${VAR}" ];

The above code will verify if a variable referred to as VAR is ready, or empty.

What does this imply?#

Unset signifies that the variable has not been set.

Empty signifies that the variable is ready with an empty worth of "".

What’s the inverse of -z?#

The inverse of -z is -n.

if [ -n "$VAR" ];

A brief resolution to get the variable worth#

VALUE="${1?"Utilization: $0 worth"}"

Take a look at if a variable is particularly unset#

if [[ -z ${VAR+x} ]]

Take a look at the varied potentialities#

if [ -z "${VAR}" ]; then
    echo "VAR is unset or set to the empty string"
fi
if [ -z "${VAR+set}" ]; then
    echo "VAR is unset"
fi
if [ -z "${VAR-unset}" ]; then
    echo "VAR is ready to the empty string"
fi
if [ -n "${VAR}" ]; then
    echo "VAR is ready to a non-empty string"
fi
if [ -n "${VAR+set}" ]; then
    echo "VAR is ready, presumably to the empty string"
fi
if [ -n "${VAR-unset}" ]; then
    echo "VAR is both unset or set to a non-empty string"
fi

This implies:

                        +-------+-------+-----------+
                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      |
+-----------------------+-------+-------+-----------+