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 ?