Bonjour, Je suis devant un comportement de joe dans un while que je ne comprend pas. J'ai une liste de fichiers à éditer pour contrôle et modifs éventuelles, j'ai donc lancé un while read f; do joe $f; done < fichiers.list mais - si fichiers.list commence par une ligne vide, ça m'ouvre joe avec un nouveau fichier qui contient le contenu de fichiers.list (comme si joe recevait $f sur son entrée standard et pas comme argument), - sinon, ça ouvre le premier fichier en y ajoutant à la fin la suite de fichiers.list (les noms des fichiers de la liste, pas leur contenu) alors que while read f; do echo $f|xargs joe; done < fichiers.list ou bien for f in $(cat fichiers.list); do joe $f;done; ont bien l'effet escompté (ouvre le premier fichier de la liste et passe au suivant à chaque fermeture de fichier). J'ai aussi testé avec nano, mais seule la solution avec le for fonctionne, les autres donnent du "Received SIGHUP or SIGTERM" Une explication ? -- Daniel PS: pour ceux qui veulent tester # le contenu de test mkdir tmp cd tmp echo -e "tata\nbla\nblabla" >tata echo -e "titi\nbli\nblibli" >titi echo -e "toto\nblo\nbloblo" >toto echo -e "tata\ntiti\ntoto">fichiers.list echo >liste2 # et les tests while read f; do joe $f; done < fichiers.list while read f; do echo $f|xargs joe; done < fichiers.list for f in $(cat fichiers.list); do joe $f;done; while read f; do joe $f; done < liste2 while read f; do nano $f; done < fichiers.list while read f; do echo $f|xargs nano; done < fichiers.list for f in $(cat fichiers.list); do nano $f;done;