首页 > 解决方案 > 如何通过向前一个条目添加一个元素来将值附加到 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. 我怎样才能最好地解决这个问题?

标签: arrayslinuxbash

解决方案


如果您知道如何在数组中获取数组的最后一个元素,那就很简单了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

通过示例和一些修改,您所需要的一切如上。


推荐阅读