If it’s worthwhile to verify if a bash
variable is empty, or unset, then you need to use 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, probably 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 |
+-----------------------+-------+-------+-----------+