2016-07-11 14 views
7

Próbuję dynamicznie dodać element do tablicy:Dodaj element do tablicy

array=("element1" "element2" "element3") 
    fa=() 
    # now loop through the above array 
    for i in "${array[@]}" 
    do 
     fa+=("$i") 
     # or do whatever with individual element of the array 
    done 

    echo $fa 

Ale to powrót element1.

Próbowałem z indeksem, ale ja dostaję ten sam wynik:

fa[index]="$i" 
((index++)) 

robię coś źle tutaj?

+0

Nota boczna, możesz dwukrotnie sprawdzić, czy wszystkie powłoki obsługują styl 'fa + = (" $ i ")'. – sjsam

Odpowiedz

13

Problem dotyczy drukowania, tj. echo $fa. Jest to odpowiednik echo ${fa[0]} co oznacza, że ​​pierwszy element tablicy, więc masz element1

echo "${fa[@]}" 

powinny dać ci całą tablicę.

referencyjny

[ This ] powinno dać piękny opis tablic bash.