If I want to check for the null string I would do
[ -z $mystr ]
but what if I want to check whether the variable has been defined at all? O
Here is what I think is a much clearer way to check if a variable is defined:
var_defined() { local var_name=$1 set | grep "^${var_name}=" 1>/dev/null return $? }
Use it as follows:
if var_defined foo; then echo "foo is defined" else echo "foo is not defined" fi