我在一个bash脚本中有以下代码,其中“values”是一个由换行分隔的数字变量,其中一些数字有前导0,我试图遍历values中的每个值并将每个值添加到变量“sum”中。
sum=0
while read line; do
sum=$(( sum + line ))
done <<< "$values"
这段代码给我报错:"value too great for base (error token is "09")",据我所知,这是因为bash算术表达式将值"line"解释为八进制值,因为它有一个前导零。
我该如何让bash将"line"的值解释为十进制值?(例如:09 -> 9)在这个bash算术表达式中?
02
仍然是2,而3
是十进制,因为它没有任何前导零。因此,无论02
是八进制还是十进制,你都会得到5
。 - Charles Duffy