此语句:
[[ $var -eq 0 ]]
当var=0
、未定义var
、var=''
和var=' '
(仅空格和制表符(时返回true,我希望该语句仅在var=0
时返回true。
我怎么能拿到这个?
如果您不希望var
被解释为数字(包括试图将非数字值强制转换为合理的数字解释(,请使用=
进行字符串比较,而不是数字比较:
[[ $var = 0 ]]
请注意,在算术上下文中使用非数值时,将空字符串转换为0并不是唯一的强制操作。例如:
var1='var2'
var2=3
[[ $var1 -eq 3 ]] && echo "Strings can be coerced to indirect references"