我不禁注意到使用比较运算符如test
命令的参数有很多shell代码,而不是符号。shell的二进制运算符兼容性
例如,使用test
测试如果外壳没有收到参数:
if test $# -eq 0
then
echo "No arguments received"
fi
我们为什么不能有更多,比如说,传统的,直观的,熟悉的,普遍的,并且,可读标志更换-eq
与==
?所以,我们有以下几点:
if test $# == 0
then
echo "No arguments received"
fi
这同样与其他运营商相比< < = =>>。
我假设这背后必然存在一些技术原因(可能是兼容性问题?)赞成-eq
格式而不是==
,但我不知道它们。
这正是我一直在寻找的!使用字符串比较运算符进行整数比较还有什么副作用? – melvynkim
它主要是这个 - 按字母顺序排列的数字顺序,以及整数规范化。这在8月份尤其重要,因为前导零表示八进制表示法,'date +%m'开始返回无效数字'08'。 –