lancer un éditeur texte dans une boucle shell

Vincent Lefevre vincent at vinc17.org
Tue Aug 7 18:13:00 CEST 2007


On 2007-08-07 17:13:01 +0200, Daniel Caillibaud wrote:
> Vincent Lefevre a écrit :
> > C'est peut-être parce que le processus n'a pas un stdin attaché au
> > terminal ou un truc du genre, auquel cas le comportement peut varier
> > d'un éditeur à un autre.
> 
> Oui, mais je comprend pas trop pourquoi ça réagit différemment entre
> 
> while read f; do #commandes#; done<fichier
> et
> for f in `cat fichier`; do #commandes#; done;

Comme je l'ai dit, il peut y avoir un problème quand le processus n'a
pas un stdin attaché au terminal (ce qui se produit avec la première
ligne). Par exemple:

vin% cat file 
foo.c
vin% while read f; do emacs -nw $f; done < file
emacs: standard input is not a tty
vin%

Essaie plutôt un truc du style:

  while read f; do emacs -nw $f < $TTY; done < file

ou

  while read f <&3; do emacs -nw $f; done 3< file

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


More information about the Shell mailing list