arrays - 如何通过向前一个条目添加一个元素来将值附加到 Bash 中的数组?
问题描述
我有一个数字列表1 2 3 4 5
,我试图将它们组织成一个数组,其中的值按顺序排列,其中当前值是数组中先前值的总和(像这样)1 3 6 10 15
:。我目前的代码如下:
array=()
for n in `seq 1 5`
do
if [ $n -eq 1 ]; then
array+=($n)
else
value=$n
index="$(($n-1))"
array+=(`echo ${array[$index]}+$value`)
fi
done
但是,当我尝试检查数组时,echo "${array[@]}"
我得到1 +2 +3 +4 +5
. 我怎样才能最好地解决这个问题?
解决方案
如果您知道如何在数组中获取数组的最后一个元素,那就很简单了bash
!您可以只使用负索引 ${myarray[-1]}
来获取最后一个元素。你可以对倒数第二个做同样的事情,依此类推;在重击中:
fbseries=()
for ((i=1; i<=5; i++)); do
if [ "$i" -eq 1 ]; then
fbseries+=("$i")
else
fbseries+=( $(( ${fbseries[-1]} + $i )) )
fi
done
通过示例和一些修改,您所需要的一切如上。