什么是-ne“;在bash中是什么意思?
命令“-ne”在bash脚本中是什么意思 例如,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
[ $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文档
- (包括
和测试
)[
- --(滚动到底部;
位于“arg1 OP arg2”下)-ne
test
命令的官方定义是POSIX标准(bash实现应该很好地符合该标准,可能有一些扩展)。查看它检查$RESULT
是否“不等于”到0
,它是数字不等式;!=
是字符串不等式。它没有任何意义。”在bash中,“[
运行一个名为test
-ne
的命令是test
命令的参数,而不是bash,您可以在man test
中找到它的文档。顺便说一下,这是一个错误,因为您没有使用引号。它必须是[“$RESULT”-ne 0]
至少——或者更好的是,((结果!=0))
。(比这更好的是——如果您是从$?
获得此信息,您可以直接在正在运行的命令的退出状态上分支,而不是运行它,将其退出状态捕获到一个变量中,然后将该变量的值替换到test
命令中)。我倾向于建议使用POSIX文档,而不是coreutils文档。test
毕竟是一个POSIX命令。指出数字和字符串比较之间的差异很好……这很容易被忽略