script中指定整數變數發生錯誤



贊助商連結


thi
2002-08-18, 02:19 AM
狀況:我執行 declare mon=`date +%m`,由於讀出來的月份值08,指定給一個
整數變數時,會發生錯誤的情形(我想應該是8前面多了一個0),因為我若
是執行declare mon=`date +%d`,以今天的值18,就正常。

所以,我想請問的是,就上面的情形來看,有沒有更好的寫法?或是能從數值08
堙A只擷取出8這個數字。會要這樣做是,我要將資料做每個月的備份,並以該
月份做為檔名;但在備份之前先砍掉上個月的備份檔,所以需要將變數mon做加
減運算。不知是否有更好的方法,請網上各位指教我,謝謝!

贊助商連結


xiver
2002-08-18, 10:57 AM
我執行是正常的...so...
建議檢查一下
mon=`date +%m`
mon 和 = 和 `date +%m`
中間不能有空白

xiver
2002-08-18, 11:09 AM
declare mon=`date +%m|sed -e 's|^0||'`
參考看看...

xiver
2002-08-18, 11:10 AM
declare mon=`date +%m|sed -e 's|^0||'`
參考看看...:) :) :)

thi
2002-08-19, 10:11 PM
奇怪,又可以了?
啊~,我想可能是當初我巳指定一次過變數了,再次指定時,又使用同一個變數名稱才會這樣吧。


最初由 xiver 發表
declare mon=`date +%m|sed -e 's|^0||'`
參考看看...:) :) :)

想再次請教的是 %m後面那一串的是什麼東西啊:confused: 有看沒有懂,可能稍微解釋一下
嗎?謝謝!

xiver
2002-08-20, 06:57 AM
後面那一串是用來去掉數字最前面的0用的
想知道詳細指令的話可以
man sed