当我写作时
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 已处理所有重定向、扩展和替换,并删除所有引用。