Vous ne créez pas de tableau à moins de l'entourer de (
)
:
dirlist=(`ls ${prefix}*.text`)
Déclarez un tableau de fichiers :
arr=(~/myDir/*)
Itérer dans le tableau à l'aide d'un compteur :
for ((i=0; i < ${#arr[@]}; i++)); do
# [do something to each element of array]
echo "${arr[$i]}"
done
Ceci :
dirlist=`ls ${prefix}*.text`
ne fait pas un tableau. Il crée uniquement une chaîne avec des noms de fichiers séparés par des espaces.
Vous devez faire
dirlist=(`ls ${prefix}*.text`)
pour en faire un tableau.
Puis $dirlist
référencera uniquement le premier élément, vous devez donc utiliser
${dirlist[*]}
pour tous les référencer dans la boucle.