96

bash 脚本中的命令“-ne”是什么意思?

例如,bash 脚本中的以下行是做什么的?

[ $RESULT -ne 0 ] 
4

2 回答 2

131

如果您还不知道在哪里查找,这是很难搜索的内容之一。

[实际上是一个命令,而不是您可能期望的 bash shell 语法的一部分。它恰好是 Bash 内置命令,因此它记录在 Bash 手册中。

还有一个外部命令可以做同样的事情;在许多系统上,它由 GNU Coreutils 包提供。

[等效于test命令,除了[需要]作为其最后一个参数,并且test不需要。

假设您的系统上安装了 bash 文档,如果您键入info bash并搜索'test'or '['(撇号是搜索的一部分),您将找到该[命令的文档,也称为test命令。如果您使用man bash而不是info bash,请搜索(在行首^ *test的单词,跟在一些空格之后)。test

参考“Bash Conditional Expressions”将引导您了解-ne,它是数字不等式运算符(“ne”代表“不等于”)。相比之下,!=字符串不等式运算符。

您还可以在 Web 上找到 bash 文档。

该命令的官方定义test是 POSIX 标准(bash 实现应该相当好地符合该标准,也许还有一些扩展)。

于 2013-07-17T01:26:46.267 回答
77

“不等于” 所以在这种情况下,$RESULT被测试为不等于零。

但是,测试是按数字进行的,而不是按字母顺序:

n1 -ne n2     True if the integers n1 and n2 are not algebraically equal.

相比:

s1 != s2      True if the strings s1 and s2 are not identical.
于 2013-07-17T01:16:26.470 回答