Citation
oliv
Salut
Lorsque je lance le script suivant
vi 01CF13 << !
:1,$ s/NAME/01CF13\ \NAME/
:wq
!
j'obtiens le message d'erreur suivant
Vim: Warning: Input is not from a terminal
que signifit ce message et comment l'eviter
Il signifie "mesage de vim: attention, l'entrée du traitement n'est pas fait à partir d'un terminal" (sous-entendu "d'un clavier")
Comment l'éviter ? vi 01CF13 << ! 2>/dev/null
Il est d'ailleurs très probable que quand tu lances ton script, l'écran affiche une succession de texte. il s'agit simplement des actions de vi qui travaille normallement à l'écran comme d'hab. Si ces affichages te gènent, tu peux aussi rediriger le flux n° 1 vers /dev/null => vi 01CF13 << ! 1>/dev/null 2>/dev/null
Autre remarque => arrêter le flux entrant par un simple point d'exclamation est dangereux car le flux entrant peut lui-même contenir un point d'exclamation. Vaut mieux y mettre une string qui a moins de chance d'y être "par hasard". Moi, je mets "_EOT_" (End Of Text) => vi 01CF13 <<_EOT_ 1>/dev/null 2>/dev/null
Bien entendu, les remarques des autres intervenants sont très valables. Vaut mieux essayer d'éviter "vi" (très lourd) autant que possible en lui préférant des modules plus légers mais plus adaptés aux traitements automatisés (sed, tr, awk)...
L'homme qui murmurait à l'oreille des pingouins
[
fr.lang.free.fr]
Poste le Thursday 28 June 2007 18:52:00