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

posted @ 2016-03-11 10:16  ChrisTimer  阅读(1275)  评论(0编辑  收藏  举报