什么没有 发表于 2018-8-19 07:47:14

shell中if判断一个变量为空

1.最直接简单的判断
  


[*][ ! $a ] && echo "a is null"
  

  不用那些if语句了,直接缩短代码量。
2. 变量通过" "引号引起来
如下所示:,可以得到结果为 IS NULL.
  


[*]#!/bin/sh
[*]
[*]a=
[*]
[*]if [ ! -n "$a" ]; then
[*]
[*]echo "IS NULL"
[*]
[*]else
[*]
[*]echo "NOT NULL"
[*]
[*]fi
  

3. 直接通过变量判断
如下所示:得到的结果为: IS NULL,跟第一种方法一样的,只是代码长一点,推荐使用第一种判断方式,简单明了。
  


[*]#!/bin/sh
[*]
[*]a=
[*]
[*]if [ ! $a ]; then
[*]
[*]echo "IS NULL"
[*]
[*]else
[*]
[*]echo "NOT NULL"
[*]
[*]fi
  

4. 使用test判断
得到的结果就是: a is not set!
  


[*]#!/bin/sh
[*]
[*]a=
[*]
[*]if test -z "$a" then
[*]
[*]echo "a is not set!"
[*]
[*]else
[*]
[*]echo "a is set !"
[*]
[*]fi
  

5. 使用""判断
  


[*]#!/bin/sh
[*]
[*]a=
[*]
[*]if [ "$a" = "" ]; then
[*]
[*]echo "a is not set!"
[*]
[*] else
[*]
[*]echo "a is set !"
[*]
[*]fi
  

这种情况下容易让脚本报错



页: [1]
查看完整版本: shell中if判断一个变量为空