【发布时间】:2014-03-28 11:16:53
【问题描述】:
我不禁注意到有这么多 shell 代码使用比较运算符作为 test 命令的参数,而不是符号。
例如,使用test 测试shell 中是否没有接收到参数:
if test $# -eq 0
then
echo "No arguments received"
fi
为什么我们不能用== 来替换-eq 更多,比如传统的、直观的、熟悉的、通用的和可读的符号?这样我们就有了以下内容:
if test $# == 0
then
echo "No arguments received"
fi
其他比较运算符也是如此 >。
我假设这背后一定有一些技术原因(也许是兼容性问题?)偏爱-eq 格式而不是==,但我不知道它们。
【问题讨论】:
标签: bash shell string-comparison comparison-operators