【发布时间】:2011-07-12 14:11:11
【问题描述】:
以下测试有什么区别吗?
[[ "$STRING" = "" ]] && exit 1;
[[ "x$STRING" = "x" ]] && exit 1;
[[ -z $STRING ]] && exit 1;
【问题讨论】:
以下测试有什么区别吗?
[[ "$STRING" = "" ]] && exit 1;
[[ "x$STRING" = "x" ]] && exit 1;
[[ -z $STRING ]] && exit 1;
【问题讨论】:
不,它们都是一样的。但是要养成几个防御习惯。
-z 之一中引用 $STRING
${STRING-},以防万一它根本没有设置【讨论】:
[[ 关键字时,为什么要引用 $STRING?
显然,它们都做同样的事情,即检查给定字符串是否为“空”,除了第一个检查 $string 是否为空,第二个检查 x 加 $string 是否等于 x,最后, -z 检查长度。 就我个人而言,我更倾向于使用 -z 更可靠的选项。
【讨论】:
[[ -z "$STRING" && -z "$OTHER" ]]。