在bash中检查空字符串

时间:2011-07-12 14:11:11

标签: linux bash

以下测试之间有什么区别吗?

[[ "$STRING" = "" ]] && exit 1;


[[ "x$STRING" = "x" ]] && exit 1;


[[ -z $STRING ]] && exit 1;

2 个答案:

答案 0 :(得分:11)

不,他们都是一样的。但是几个防守习惯才能进入。

  • 您应引用$STRING中的-z以及
  • 如果您使用-u选项运行(我总是这样做),那么您应该将可能的可选变量引用为${STRING-},以防万一未设置

答案 1 :(得分:0)

显然,他们都做同样的事情,即检查给定的字符串是否为“空”,除了第一个检查$ string是否为空,第二个检查x加上$ string是否等于x,最后,-z检查长度。 就个人而言,我更愿意使用-z,这更加可靠。