在Bash Shell中如何判断变量是否为NULL值

时间:2019-11-20 08:53:03  来源:igfitidea点击:

在Linux shell脚本中,如何检查变量是否为NULL?
如何使用test命令判断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"

方法1-检查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

方法2-检查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"

或者

## 使用 ! 取反判断
[ ! -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"

方法3-在Unix上使用if命令判断变量是否为NULL

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

#!/bin/bash
var=""
if [ ! -n "$var" ]
then
	echo "##代码## - Error $var not set or NULL"
else
	echo "$var set and now starting ##代码## shell script..."
fi