Shell Error:对于base来说值太大了(错误令牌是“09”)

时间:2015-05-18 13:52:15

标签: bash shell unix

问题已经存在于stackoverflow中,但它并没有解决我的问题。 函数 getDate 根据3个参数计算天数。

但我总是收到此错误:value too great for base (error token is "09")第7行val= ..

function getDate (){
    d=$1
    m=$2
    y=$3
    m=$(((m+9) % 12))
    y=$((y - m/10))
    val=$((365*y + y/4 - y/100 + y/400 + (m*306 + 5)/10 + ( d - 1 )))
    return $val
}

1 个答案:

答案 0 :(得分:2)

这是因为前导0 shell将09视为八进制值,显然09是一个无效的八进制值。