本文介绍了Bash的错误:值太大,基地(错误标记是" 09")的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我运行bash脚本,这部分我得到一个错误
When running this part of my bash script am getting an error
剧本
value=0
for (( t=0; t <= 4; t++ ))
do
d1=${filedates[$t]}
d2=${filedates[$t+1]}
((diff_sec=d2-d1))
SEC=$diff_sec
compare=$((${SEC}/(60*60*24)))
value=$((value+compare))
done
输出
jad.sh: line 28: ((: 10#2014-01-09: value too great for base (error token is "09")
jad.sh: line 30: /(60*60*24): syntax error: operand expected (error token is "/(60*60*24)")
d1和d2是在这种形式的日期2014年1月9日和2014-01-10
d1 and d2 are dates in that form 2014-01-09 and 2014-01-10
任何解决方案吗?
推荐答案
prePEND字符串10#你变量的前面。这力量的bash他们当作小数点,即使前导零通常会令他们八。
Prepend the string "10#" to the front of your variables. That forces bash to treat them as decimal, even though the leading zero would normally make them octal.
这篇关于Bash的错误:值太大,基地(错误标记是&QUOT; 09&QUOT;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!