2016-07-11 43 views
7

sto cercando di aggiungere dinamicamente un elemento in un array:Aggiungi elemento nella matrice

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 

Ma è il ritorno element1.

ho provato con un indice, ma sto ottenendo lo stesso risultato:

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

sto facendo qualcosa di sbagliato qui?

+0

Una nota a margine, è possibile ricontrollare se tutte le shell supportano lo stile 'fa + = (" $ i ")'. – sjsam

risposta

13

Il problema è con la stampa, ovvero echo $fa. Ciò equivale a echo ${fa[0]} il che significa che il primo elemento della matrice, così hai element1

echo "${fa[@]}" 

dovrebbe darvi l'intero array.

Riferimento

[ This ] dovrebbe darvi una bella descrizione sugli array bash.

Problemi correlati