【转载】Unix Shell中用[-n]判断字符串不为NULL

转载自:http://blog.sina.com.cn/s/blog_541086430100mosm.html

在Unix Shell中,可以使用-n来判断一个string不是NULL值,但是之前却以为这是骗人的把戏。因为执行下面的命令,返回是0值(即真),可是BB明明是没有内容的。

[root]# export BB=
[root]# [ -n $BB ]
[root]# echo $?
0

今日翻书才知道,原来需要用双引号把变量名括起来,即变成[ -n "$BB" ]。这样才行。

[root]# [ -n "$BB" ]
[root]# echo $?
1

因为如果没有双引号括起变量,当BB为null时,判定表达式变成:[ -n ]。这显然是范围true。当然,如果不想用双引号,那么使用[[ ]]判定语句也是可以的。

[root]# [[ -n $BB ]]
[root]# echo $?
1

原文地址:https://www.cnblogs.com/pengdonglin137/p/3261717.html