value too great for base (error token is "08")
shell 中,经常有定时任务, 这时候shell脚本中一般会对时间进行一些判断,或者相关逻辑的操作
这时候,如果你获取的小时或者分钟是08,09,如果要再对其进行运算符或者比较的话,就会报标题的错误。
原因:
shell 默认认为0开始是个八进制,而八进制不可能出现8,9,所以报错。
解决方法:
主动的显示指定10进制,例子(前人的,非常不错,直接引用)
You can explicitly state the base of a number using base#number
Code:
if [ $((10#$item)) -eq 0 ] ; then
That will have trouble if the number starts with a minus sign.
The '-' needs to be in front of the base like -10#009 for -9.
如果是个负数,需要在前面加”-“,如 -10#08
Winners see the gain; Losers see the pain.