No está creando una matriz a menos que la rodee con (
)
:
dirlist=(`ls ${prefix}*.text`)
Declarar una matriz de archivos:
arr=(~/myDir/*)
Iterar a través de la matriz usando un contador:
for ((i=0; i < ${#arr[@]}; i++)); do
# [do something to each element of array]
echo "${arr[$i]}"
done
esto:
dirlist=`ls ${prefix}*.text`
no hace una matriz. Solo crea una cadena con nombres de archivos separados por espacios.
Tienes que hacer
dirlist=(`ls ${prefix}*.text`)
para convertirlo en una matriz.
Entonces $dirlist
hará referencia solo al primer elemento, por lo que debe usar
${dirlist[*]}
para hacer referencia a todos ellos en el ciclo.