Bash Shell找出变量是否具有NULL值

时间:2020-01-09 10:37:26  来源:igfitidea点击:

如何在Linux或Unix Shell脚本中检查NULL值?

您可以在Bash Shell脚本中快速测试空变量或空变量。
您需要将-z或-n选项传递给测试命令或if命令,或使用条件表达式。
该页面显示了如何使用test命令找出bash shell变量是否为NULL值。

要确定bash变量是否为null:

  • 如果未设置bash变量或将其设置为null(空)字符串,则返回true: if [ -z "$var" ]; then echo "NULL"; else echo "Not NULL"; fi
  • 查找bash变量是否设置为NULL的另一个选项:[ -z "$var" ] && echo "NULL"
  • 确定bash变量是否为NULL: [[ ! -z "$var" ]] && echo "Not NULL" || echo "NULL"

Bash Shell找出变量是否具有NULL值

让我们详细查看测试命令语法和示例。

if命令的语法如下:

my_var="theitroad"
if [ -z "$my_var" ]
then
      echo "$my_var is NULL"
else
      echo "$my_var is NOT NULL"
fi

或者

my_var=""
if test -z "$my_var" 
then
      echo "$my_var is NULL"
else
      echo "$my_var is NOT NULL"
fi

检查bash shell变量是否为NULL的另一种选择

[ -z "$my_var" ] && echo "NULL"
[ -z "$my_var" ] && echo "NULL" || echo "Not NULL"

或者

[[ -z "$my_var" ]] && echo "NULL"
[[ -z "$my_var" ]] && echo "NULL" || echo "Not NULL"

或者

## Check if $my_var is NULL using ! i.e. check if expr is false ##
[ ! -z "$my_var" ] || echo "NULL"
[ ! -z "$my_var" ] && echo "Not NULL" || echo "NULL"
 
[[ ! -z "$my_var" ]] || echo "NULL"
[[ ! -z "$my_var" ]] && echo "Not NULL" || echo "NULL"

如果在Unix上有条件,如何在shell中查找NULL值

如果STRING的长度非零,则-n返回TRUE。
例如:

#!/bin/bash
var=""
if [ ! -n "$var" ]
then
	echo "
#!/bin/bash
# Purpose - Test for NULL/empty shell var
# Author - Hyman Gite {htttps://www.theitroad.local} under GPL 2.0+
DEMO="theitroad.local"
HINT=""
#####################################
# Do three possibilities for $DEMO ##
#####################################
for i in 1 2 3 
do
case $i in
	1) DEMO="theitroad.com"; HINT="value set";;
	2) DEMO=""; HINT="value set to empty string";;
	3) unset DEMO; HINT="$DEMO unset";;
esac
 
###############################################
# Update user with actual values and action  
# $DEMO set to a non-empty string (1)
# $DEMO set to the empty string  (2)
# $DEMO can be unset (3)
################################################
echo "*** Current value of $DEMO is '$DEMO' ($HINT) ***"
 
########################################################################
## Determine if a bash variable is NULL, set, unset or not set at ALL ##
########################################################################
if [ -z "${DEMO}" ]; then
    echo "DEMO is unset or set to the empty string"
fi
if [ -z "${DEMO+set}" ]; then
    echo "DEMO is unset"
fi
if [ -z "${DEMO-unset}" ]; then
    echo "DEMO is set to the empty string"
fi
if [ -n "${DEMO}" ]; then
    echo "DEMO is set to a non-empty string"
fi
if [ -n "${DEMO+set}" ]; then
    echo "DEMO is set, possibly to the empty string"
fi
if [ -n "${DEMO-unset}" ]; then
    echo "DEMO is either unset or set to a non-empty string"
fi
done
- Error $var not set or NULL" else echo "$var set and now starting ##代码## shell script..." fi

示例:确定bash变量是否为NULL

以下shell脚本显示了基于bash/sh/posix的shell的各种可能性:

##代码##