sortie standard: impossible de rediriger dans un fichier
Le
ctobini
Bonjour,
Je suis en train d'écrire un script allant chercher des infos sur 2
bases de données locales à partir d'un fichier d'entrée.
Je sous sous Ubuntu 5.10.
Là il y a une chose que je ne comprends absolument pas :
J'ai mis 2 'print' dans une boucle afin de vérifier la sortie, ça
marche nickel mais rien ne se passe lorsque :
- je redirige la sortie du script '>>'
- effectue un | tee fichier_de_sortie
- ouvre un autre filehandle de sortie pour ces même lignes.
Un filehandle de sortie existe déjà pour mettre en sortie certaines
lignes du fichier.
Enfin bref, à partir du moment où les lignes sortent dans la sortie
standard, je ne comprends pas pourquoi je n'arrive pas à les rediriger
vers un fichier avec '>>'.
Auriez-vous une expérience là-dessus ?
En vous remerciant,
C. Tobini
Je suis en train d'écrire un script allant chercher des infos sur 2
bases de données locales à partir d'un fichier d'entrée.
Je sous sous Ubuntu 5.10.
Là il y a une chose que je ne comprends absolument pas :
J'ai mis 2 'print' dans une boucle afin de vérifier la sortie, ça
marche nickel mais rien ne se passe lorsque :
- je redirige la sortie du script '>>'
- effectue un | tee fichier_de_sortie
- ouvre un autre filehandle de sortie pour ces même lignes.
Un filehandle de sortie existe déjà pour mettre en sortie certaines
lignes du fichier.
Enfin bref, à partir du moment où les lignes sortent dans la sortie
standard, je ne comprends pas pourquoi je n'arrive pas à les rediriger
vers un fichier avec '>>'.
Auriez-vous une expérience là-dessus ?
En vous remerciant,
C. Tobini

Poser une question


de mise en tampon de la sortie standard change selon que celle-ci est
connectee a un terminal ou non. (test -t avec perl).
- Sur un terminal, les lignes apparaissent des qu'elles sont completes.
- Sur une sortie redirigee, on utilise le tampon au maximum.
Confere la doc de perl, en particulier perlvar (autoflush) ou
IO::Handle (pour determiner a la main quand tu veux faire un flush,
ou revenir en mode `ligne par ligne').