2012-11-02 13 views
5

Mam następujący kod:bash tablica z długością polecenia find

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

Moja tablica zawiera wiele elementów, ale ostatnie polecenie mówi moja tablica zawiera tylko jeden element. Co ja robię źle?

Odpowiedz

8

Musisz użyć nawiasów, aby bash rozpoznał ją jako tablicę.

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

Dzięki, ten, który napisałeś, działa, ale nie tak, jak używam cytatów. Czemu? – fmonegaglia

+0

, ponieważ cudzysłowy tworzą jedno słowo, a elementy tablicy mają być pojedynczymi słowami. –