在Bash脚本中检查主机名时出现“无效的算术运算符”错误

时间:2013-11-08 20:53:04

标签: string bash comparison

我在bash脚本中有一个简单的主机名检查:

if [[ `hostname` -eq "cps1214" ]]
then
    JAVA_HOME=/usr/local/jdk1.6.0_21
fi

在我们的旧SuSE 8系统上,这很好用。在我们较新的CentOS系统上,这会导致错误:

[[: dev.example.com: syntax error: invalid arithmetic operator
(error token is ".example.com")

我不确定这里的问题是什么。我的理解是-eq明确用于字符串比较,hostname显然返回一个字符串,右边也是一个字符串。为什么抱怨算术?

1 个答案:

答案 0 :(得分:2)

因为-eq不是用于字符串比较,而是算术运算符,如bash文档中所述。

您可以将-eq===交换,您也可以。