0

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

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

在我们旧的 SuSE 8 系统上,这可以正常工作。在我们较新的 CentOS 系统上,这会导致错误:

[[:dev.example.com:语法错误:算术运算符无效
(错误标记是“.example.com”)

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

4

1 回答 1

3

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

-eq你可以用=or交换==,你很好。

于 2013-11-08T20:55:32.233 回答