我没有接受过Linux培训,但是我可以通过一些doc查找来搞清楚,但是我很难过。壳牌:如果a小于b,“a -lt b”是不是真的?
我发现了一个脚本,它可以帮助在启动时在我的dd wrt路由器上设置日期,但只有当前日期小于存储日期。如果你愿意的话,我可以分享整个剧本,但是当我期望的时候,这个叙述不会被评估为真实。我把文本中,而不是变量,它仍然没有返回true,则执行了“其他”的语句:
if [ 021715402012 -lt 021815402012 ]
then
echo "the first seems less than the second"
else
echo "the first does not seem less than the second for some reason"
fi
我希望“第一似乎小于第二”,但是这并非如此... 它是溢出问题吗?我试图做一个字符串比较是这样的:
if [ x021715402012 -lt x021815402012 ]
,并试图把它放在引号:
if [ "x021715402012" -lt "x021815402012" ]
它总是执行别的。如果a小于b,“a -lt b
”是不是真的?
任何洞察到这一点将不胜感激,我很难过!
在Mac上的'bash'中正常工作。 – kindall 2012-02-19 01:27:36
嗯,当我测试你的例子时,它会打印出“第一个看起来不到第二个”。这是什么bash或sh版本?如果你想了解更多关于-lt等的信息,你可以查看'help test','help'或'man test'。 – 2012-02-19 01:28:40
也适用于我的openwrt路由器。但我显然有不同的实现,因为我的“坏数字”包含了“x”。 – 2012-02-19 01:49:47