Si l'on ne peut déterminer de manière certaine le nombre d'éléments à lire alors il serait judicieux de pouvoir les ventiler dans les cellules d'un tableau, ce que permet l'option -a du read de Bash (ET respectivement l'option -A de ksh) : read -p "Vos nom et prénom(s) : " -a PATRONYME echo NOM : ${PATRONYME[0]} for ((P = 1 ; P < ${#PATRONYME[@]} ; P++)) do echo PRENOM $P : ${PATRONYME[$P]} done OU, sur ksh : echo -n "Vos nom et prénom(s) : " ; read -A PATRONYME # le "for" plus haut marche aussi avec KSH93 (a priori !) P=1 while [ "${PATRONYME[$P]}"X != X ] do echo PRENOM $P : ${PATRONYME[$P]} P=`expr $P + 1` done