How to tell if a string is not defined in a Bash shell script

后端 未结 12 2150
没有蜡笔的小新
没有蜡笔的小新 2020-12-02 04:42

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

12条回答
  •  眼角桃花
    2020-12-02 05:08

    A summary of tests.

    [ -n "$var" ] && echo "var is set and not empty"
    [ -z "$var" ] && echo "var is unset or empty"
    [ "${var+x}" = "x" ] && echo "var is set"  # may or may not be empty
    [ -n "${var+x}" ] && echo "var is set"  # may or may not be empty
    [ -z "${var+x}" ] && echo "var is unset"
    [ -z "${var-x}" ] && echo "var is set and empty"
    

提交回复
热议问题