哪个`[`不能比较空字符串?

Which `[` can not compare empty strings?

在一些古老的 Shell Solaris 脚本中,我发现了以下符号来检查变量是否为空:

[ x"$var" = x ]

在当前的 Linux 系统上,我会这样写

[ "$var" = "" ]

[ -z "$var" ]

哪个版本的 [ 实际上需要第一个符号?

None.The alias from [] to test 出现在 test 的选项 -z 之后。因此,如果可以用[ x"$var" = x],也可以写成[ -z "$var" ].