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