我有三个数组:
array1=(8 7 6 5 4 3 2 1)
declare -a array2
declare -a array3
和X表示我应该使用哪个数组进行某些操作所以,首先我会发现它是这样的:
nameOfArray=array$X[@]
indirectTempArray=("${!nameOfArray}")
echo ${indirectTempArray[@]} // returns 8 7 6 5 4 3 2 1 in case if X == 1
所以,问题是,如何从具有引用的原始数组中删除值?
您可以将纯字符串传递给unset
:
array1=(8 7 6 5 4 3 2 1)
X=1
unset "array$X[1]"
declare -p array1
结果不包含第二个元素的数组(索引1):
declare -a array1=([0]="8" [2]="6" [3]="5" [4]="4" [5]="3" [6]="2" [7]="1")