如何使用非零标志-n进行测试

时间:2017-05-15 08:44:30

标签: bash shell string-length

我正在尝试使用带括号test[的sytax来查看]

测试的联机帮助页说明-n可以用来检查字符串的长度是否为零:

 -n STRING
              the length of STRING is nonzero

在相反的-z中可以使用ti检查字符串的长度是否为零:

-z STRING
              the length of STRING is zero

要了解test的工作原理,我创建了一个示例,其中包含长度为零的空变量foo和长度为1的第二个变量bar

$ export foo
$ export bar=1
$ [ -n $bar ] ; echo $?
0
$ [ -n $foo ] ; echo $?
0
$ [ -z $bar ] ; echo $?
1
$ [ -z $foo ] ; echo $?
0

-n的前两个测试结果显示为零。我建议第一次测试为零,第二次测试为一次。第二次测试显示了建议的结果。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

[ -n "$foo" ] ; echo $?

由于$ foo是一个空字符串,

[ -n $foo ] # without quotes

变为:

[ -n ]

手动测试(1)说:

STRING equivalent to -n STRING

因此[-n]的处理方式与[-n“”]不同,但与[“-n”]

相似