Sie erstellen kein Array, es sei denn, Sie umgeben es mit (
)
:
dirlist=(`ls ${prefix}*.text`)
Deklarieren Sie ein Array von Dateien:
arr=(~/myDir/*)
Durchlaufen Sie das Array mit einem Zähler:
for ((i=0; i < ${#arr[@]}; i++)); do
# [do something to each element of array]
echo "${arr[$i]}"
done
Dies:
dirlist=`ls ${prefix}*.text`
macht kein Array. Es erstellt nur eine Zeichenfolge mit durch Leerzeichen getrennten Dateinamen.
Du musst tun
dirlist=(`ls ${prefix}*.text`)
um daraus ein Array zu machen.
Dann $dirlist
wird nur auf das erste Element verweisen, also müssen Sie
${dirlist[*]}
um alle in der Schleife zu referenzieren.