How to check if an environment variable is set and not empty in BASH SHELL

In Bash, the environment variable and a normal variable (a local variable within the script), are treated equally. If you want to check if the environment variable exists and is not empty, here is the way.

env check, one-liner for environment variable is set and not empty

The one-liner syntax to check would be:

[[ -z $myenv ]] && echo "NOT SET or empty" || echo "is SET and not empty"

Example one-liner below, where the variable is set by it is empty:

bash checking if the environment variable is set and empty

Now, let us set the variable and then retry the check again

bash check if environment variable exists and not empty

env check script for checking if the environment variable exists and not empty

Now, let’s see how the same work in a full code snippet.


# bash check if environment variable is set and not empty

if [[ -z $pod_version ]]
then
        echo "pod_version undefined!"
else
        echo "The pod_version is: $pod_version"
fi

Running the script in the following scenarios

  • Checking without defining the env variable
  • Checking after defining the env variable
bash check if environment variable is set and not empty

The export command used in this example is a bash built-in, that helps in making the environment variable available in the current and child shells and thus simulates an env-variable.

This is handy for your container ( example – docker or any other containers in pods ). You can use the full script or the oneliner depending upon your development strategies.