即使变量未设置、为空或仅包含空格和制表符,[[$var-eq 0]也会返回true



此语句:

[[ $var -eq 0 ]]

var=0、未定义varvar=''var=' '(仅空格和制表符(时返回true,我希望该语句仅在var=0时返回true。

我怎么能拿到这个?

如果您不希望var被解释为数字(包括试图将非数字值强制转换为合理的数字解释(,请使用=进行字符串比较,而不是数字比较:

[[ $var = 0 ]]

请注意,在算术上下文中使用非数值时,将空字符串转换为0并不是唯一的强制操作。例如:

var1='var2'
var2=3
[[ $var1 -eq 3 ]] && echo "Strings can be coerced to indirect references"

相关内容

  • 没有找到相关文章

最新更新