什么是-ne“;在bash中是什么意思?

什么是-ne“;在bash中是什么意思?,bash,shell,syntax,Bash,Shell,Syntax,命令“-ne”在bash脚本中是什么意思 例如,bash脚本中的以下行是做什么的 [ $RESULT -ne 0 ] “不平等” 因此,在这种情况下,$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 i

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

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

[ $RESULT -ne 0 ] 
“不平等” 因此,在这种情况下,
$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.

如果你还不知道去哪里找,这是很难找到的东西之一

[
实际上是一个命令,而不是您所期望的bash shell语法的一部分。它碰巧是bash内置的命令,因此在bash手册中有详细说明

还有一个外部命令做同样的事情;在许多系统上,它是由GNUCoreutils包提供的

[
等同于
test
命令,不同之处在于
[
需要
]
作为其最后一个参数,而
test
不需要

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

在引用“Bash条件表达式”之后,您将看到
-ne
的描述,这是数值不等式运算符(“ne”代表“不相等”)。相反,
!=
是字符串不等式运算符

您还可以在web上找到bash文档

  • (包括
    测试
    [
  • --(滚动到底部;
    -ne
    位于“arg1 OP arg2”下)

test
命令的官方定义是POSIX标准(bash实现应该很好地符合该标准,可能有一些扩展)。

查看它检查
$RESULT
是否“不等于”到
0
,它是数字不等式;
!=
是字符串不等式。它没有任何意义。”在bash中,“
[
运行一个名为
test
-ne
的命令是
test
命令的参数,而不是bash,您可以在
man test
中找到它的文档。顺便说一下,这是一个错误,因为您没有使用引号。它必须是
[“$RESULT”-ne 0]
至少——或者更好的是,
((结果!=0))
。(比这更好的是——如果您是从
$?
获得此信息,您可以直接在正在运行的命令的退出状态上分支,而不是运行它,将其退出状态捕获到一个变量中,然后将该变量的值替换到
test
命令中)。我倾向于建议使用POSIX文档,而不是coreutils文档。
test
毕竟是一个POSIX命令。指出数字和字符串比较之间的差异很好……这很容易被忽略