sortie standard: impossible de rediriger dans un fichier
1 réponse
ctobini
Bonjour,
Je suis en train d'=E9crire un script allant chercher des infos sur 2
bases de donn=E9es locales =E0 partir d'un fichier d'entr=E9e.
Je sous sous Ubuntu 5.10.
L=E0 il y a une chose que je ne comprends absolument pas :
J'ai mis 2 'print' dans une boucle afin de v=E9rifier la sortie, =E7a
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=EAme lignes.
Un filehandle de sortie existe d=E9j=E0 pour mettre en sortie certaines
lignes du fichier.
Enfin bref, =E0 partir du moment o=F9 les lignes sortent dans la sortie
standard, je ne comprends pas pourquoi je n'arrive pas =E0 les rediriger
vers un fichier avec '>>'.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
espie
In article , ctobini wrote:
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').
In article <1161617964.900617.192060@i42g2000cwa.googlegroups.com>,
ctobini <ctemp2@free.fr> wrote:
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').
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').