bash:测试:否:需要整数表达式

bash:测试:否:需要整数表达式

我相信这条线

if test "$suman_inspect" -eq "yes"; then

导致此错误(逐字):

bash: test: no: integer expression expected

我制定了上面的test表达式,因为我在网上看到了这个例子:

 if test "$#" -eq "0"; then

此测试检查参数数组的长度是否为 0。

那么这两项检查是否有问题呢?我不确定我是否理解第一个有效但第二个无效。

答案1

请注意,这-eq是用于整数比较。对于字符串比较,请使用==(或=)。因此,您应该使用以下内容:

if test "$suman_inspect" == "yes"; then
    # do something
fi

同样的区别也适用于不等运算符(-gt, -lt, -ge, -le, 和-ne用于数值比较,并且>, <, >=, <=, 和!=用于字符串比较)。

请注意,您也可以使用;[ expression ]来代替test expression;两者是同义的

相关内容