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

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

当我写作时

expr 123 \< 5  

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

expr 123. \< 5  

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

expr "123" \< 5  

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

答案1

expr 123 \< 5

expr "123" \< 5

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

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

转义和引用是由你的 shell 处理. 命令运行时看到的内容就是您的命令行最终显示的内容shell 已处理所有重定向、扩展和替换,并删除所有引用。

相关内容