检查bash中的空string

以下testing有什么区别?

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

Solutions Collecting From Web of "检查bash中的空string"

不,他们都是一样的。 但是有一些防御习惯可以进入。

  • 你也应该在-z引用$STRING
  • 如果你用-u选项运行(我总是这样做),那么你应该引用可能的可选变量作为${STRING-} ,以防万一它没有被设置

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