How to check if bash variable defined in script

How to check if bash variable defined in script

To check if a variable is defined in a Bash script, you can use the -v option of the test command. For example:

refer‮ttual:ot ‬uri.com
if test -v MYVAR; then
  echo "MYVAR is defined"
else
  echo "MYVAR is not defined"
fi

Alternatively, you can use the ${VARNAME+x} expansion, which returns x if VARNAME is defined, and an empty string if VARNAME is not defined. For example:

if [ -n "${MYVAR+x}" ]; then
  echo "MYVAR is defined"
else
  echo "MYVAR is not defined"
fi

Note that both of these approaches will return true if the variable is defined, even if its value is an empty string. To check if the variable is defined and has a non-empty value, you can use the -n option of the test command, or the -z string comparison operator:

if test -n "$MYVAR"; then
  echo "MYVAR is defined and has a non-empty value"
else
  echo "MYVAR is not defined or has an empty value"
fi
if [ -z "$MYVAR" ]; then
  echo "MYVAR is not defined or has an empty value"
else
  echo "MYVAR is defined and has a non-empty value"
fi
Created Time:2017-10-28 21:38:59  Author:lautturi