我沒有接受過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