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 donnes locales partir d'un fichier d'entre.

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 vrifier 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 mme lignes.

Un filehandle de sortie existe dj 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 exprience l-dessus ?

En vous remerciant,

C. Tobini
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
espie
Le #132386
In article 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 '>>'

Si, il se passe des choses. C'est un classique d'Unix. Le mode

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').

Publicité
Poster une réponse
Anonyme