Re: Par ici la sortie...

Top Page

Reply to this message
Author: Marc TERRIER
Date:  
To: Olivier Guerrier, guilde
Subject: Re: Par ici la sortie...
Olivier Guerrier a écrit :
> Marc TERRIER a écrit :
>
>>Et le fait est que ça marche, mais je ne capte pas la différence entre les deux,
>>ni le pourquoi du comment. L'explication figure dans le bouquin en question,
>>mais c'est clair comme du jus de chique, alors si quelqu'un de trop balèze ;-)
>>pouvait m'expliquer en *vraiment clair*, ce serait sympa...
>
>
> Essayons ... (je suis pas doué pour les explication :) )
>
> initialement, stdout pointe sur /dev/fd/1 et stderr pointe sur /dev/fd/2.
>
>
>># ma_commande 2>&1 >fichier.log
>
> Dans ce cas, tu demandes au shell de faire:
> 1 - stderr = stdout (qui pointe /dev/fd/1)
> 2 - stdout = fichier.log
> 3 - ma_commande
>
>
>># ma_commande >fichier.log 2>&1
>
> Dans ce cas, tu demandes au shell de faire:
> 1 - stdout = fichier.log
> 2 - stderr = stdout (qui vaut maintenant fichier.log)
> 3 - ma_commande
>
> J'espère que c'est clair ;)


Bonjour Olivier,

Merci pour ta tentative d'explication, et pour tes astuces ( toujours bonnes à à
connaître, même celle que tu dis moins portable ). Merci aussi pour ta
"décomposition temporelle" en étapes 1, 2 et 3. Malgré tout, je reste encore un
peu sur ma faim.

J'aurais cru naïvement que "# ma_commande 2>&1 >fichier.log" avait pour effet de
rediriger stderr dans stdout, puis de mettre *le tout* dans le fichier de log.
Cela me paraissait logique, et simple. Manque de bol, c'est pas comme ça que ça
marche.

Si je tente une comparaison "enfantine" entre les canaux de sortie et des
entonnoirs, et entre le fichier de log et un seau, je ne vois pas grande
différence entre le fait de mettre l'entonnoir stdout au dessus du seau, puis
l'entonnoir stderr au dessus de l'entonnoir stdout, et l'inverse : l'entonnoir
stderr au dessus de l'entonnoir stdout, puis l'entonnoir stdout au dessus du
seau. Dans un cas comme dans l'autre, le seau contiendra bien au final tout ce
que l'on aura mis dans chacun des deux entonnoirs.

Mais c'est peut-être justement là que ça coince : à force de vouloir faire des
analogies avec des objets du monde réel, pour tenter d'expliquer le plus
clairement possible, on court le risque que l'analogie ne vienne desservir
l'explication.

--
Marc TERRIER
Mail : marc.terrier[at]free.fr
Site : http://marc.terrier.free.fr