2012-11-02 13 views
5

Ho il seguente codice:serie bash dalla lunghezza comando find

filelist="$(find $name -type f | sort)"; 
echo "$filelist"; 
echo "${#filelist[@]}" 

mio array contiene molti elementi, ma l'ultimo comando dice che la mia matrice contiene un solo elemento. Che cosa sto facendo di sbagliato?

risposta

8

È necessario utilizzare le parentesi per far sì che bash lo riconosca come matrice.

filelist=($(find $name -type f | sort)) 
echo ${#filelist[@]} 
+0

Grazie, quello che hai scritto funziona, ma non come uso le virgolette. Perché? – fmonegaglia

+0

perché le virgolette lo trasformano in una singola parola e si desidera che gli elementi dell'array siano parole singole. –