循环中数组元素的乘法



这是问题:我有一个总和元素数组且有效的循环:

for ((i=0: i<$n; i++));
do
ris=$(($ris+${array[$i]}))
done

现在,我想做同样的事情,但是使用 *操作员 以获取数组元素之间的蜕皮:

for ((i=0: i<$n; i++));
do
ris=$(($ris*${array[$i]}))
done

但是在这种情况下,我会收到此错误:

语法中的语法错误(错误令牌为"*3")

问题在哪里?

在您的第一次迭代中,ris是空的,但是

ris=$(($ris+${array[$i]}))

扩展到

ris=$((+${array[$i]}))

什么仍然有效。*运算符不会发生这种情况,因此您应该将$ ris初始化为1(显然不是0)

ris=$((*${array[$i]})) 

相关内容

  • 没有找到相关文章

最新更新