在给定索引处添加值而不删除

时间:2015-12-11 21:23:19

标签: arrays bash

我真的不知道如何使用bash而且我遇到了问题。我通常使用python,所以我不知道如何没有列表。如何在不删除默认值的情况下在数组中添加值。

myArray=(5 6 13 14)

例如,我想在索引2处添加9,我想得到这个:

myArray=(5 6 9 13 14)

而不是这个:

myArray=(5 6 9 14)

显然,做myArray[2]=9并不起作用。我可以添加它并将其他所有内容从1移到左边但是我正在尝试做一些优化的事情,所以如果有一个没有循环的解决方案,我想知道它:)

1 个答案:

答案 0 :(得分:5)

使用切片抓取数组的前后部分,然后构造一个新数组。

n=2
myArray=( "${myArray[@]:0:n}" 9 "${myArray[@]:n}")

渐近地,编写循环没有效率,但至少shell会在内部为你处理循环。