2012-11-02 1 views
5

Ich habe den folgenden Code:bash Array von Befehl find Länge

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

Mein Array enthält viele Elemente, aber der letzte Befehl sagt mein Array nur ein Element enthält. Was mache ich falsch?

Antwort

8

Sie müssen Klammern verwenden, damit bash es als Array erkennt.

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

Danke, der eine, den Sie geschrieben, funktioniert, aber es nicht wie ich zitiert. Warum? – fmonegaglia

+0

weil Anführungszeichen es in ein einzelnes Wort machen, und Sie möchten, dass die Array-Elemente einzelne Wörter sind. –