unix expr命令显示比较整数的奇怪结果


2

当我写作

expr 123 \< 5  

结果是正确的(0)因为expr计算两个整数。

expr 123. \< 5  

给出了预期的结果(1)因为它现在比较了两个字符串。

expr "123" \< 5  

给出0(我预期为1,和以前一样)
为什么?

Answers:


1
expr 123 \< 5

expr "123" \< 5

给出相同的答案,因为expr命令在程序参数中看到的内容在两种情况下完全相同。参数1,2,和3是123<5在这两种情况下。

使用/bin/echo而不是expr更清楚地看到这一点。

转义和引用由shell处理。什么命令看一次运行是你的命令行结束壳已经处理了所有重定向,扩展和subtitutions,并删除了所有引用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.