Direct de la page de manuel de GNU bash 2.05b...
8<----------------------------------------------------------------------
Remarquez que l'ordre des redirections est important. Par exemple, la
commande
ls > liste_répertoires 2>&1
redirige a la fois la sortie standard et la sortie d'erreur vers le
fichier liste_répertoires, alors que la commande
ls 2>&1 > liste_répertoires
ne redirige que la sortie standard vers le fichier liste_répertoires,
car la sortie d'erreur a été renvoyée vers la sortie standard avant que
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
celle-ci ne soit redirigée vers liste_répertoires.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8<----------------------------------------------------------------------
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout *AVANT*
d'envoyer stdout vers le fichier liste_répertoires. Ne parait-il pas
logique de regrouper les deux flux de sortie avant d'envoyer le tout
dans un fichier ?
Merci de toute explication
Je viens d'acheter le livre de C. Blaess "Scripts sous Linux" et je
potasse le chapitre 3 (page 92 et suivantes) mais je n'arrive pas à
comprendre le Schmilblick...
--
> c'était pour moi, je ne me risquerais pas à faire du traitement de texte
> avec xemacs ou vim, à moins bien sûr de coupler le tout à TeX/LaTeX.
je pourrai savoir comment on fait cela
-+- LJ in Guide du linuxien pervers - "savoir se donner des objectifs."
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
Unknown
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout *AVANT* d'envoyer stdout vers le fichier liste_répertoires. Ne parait-il pas logique de regrouper les deux flux de sortie avant d'envoyer le tout dans un fichier ?
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout *AVANT*
d'envoyer stdout vers le fichier liste_répertoires. Ne parait-il pas
logique de regrouper les deux flux de sortie avant d'envoyer le tout
dans un fichier ?
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout *AVANT* d'envoyer stdout vers le fichier liste_répertoires. Ne parait-il pas logique de regrouper les deux flux de sortie avant d'envoyer le tout dans un fichier ?
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Bruno Jargot
In article , Hugolino wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal. La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
In article <slrncc12lr.44r.hugolino@Deborah.RocknRoll.org>,
Hugolino <hugolino@fri.fr> wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le
fichier liste_répertoires.
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le fichier liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier
liste_répertoires.
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le terminal.
La partie (> liste_répertoires) redirige la sortie standard vers le
fichier liste_répertoires.
Donc au final, stderr est redirigé vers le terminal et stdout vers le
fichier liste_répertoires.
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que
stdout. nuance de taille.
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal. La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
Hugolino
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
-- Hugo NPN (i --> ee) Ce programme ne gère pas le "groupe wheel" utilisé pour restreindre l'accès par su au compte Super-Utilisateur, car il pourrait aider des administrateurs systèmes fascistes à disposer d'un pouvoir incontrôlé sur les autres utilisateurs. (man su)
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ?
(Suis pas developpeur justement (même si je fais semblant de savoir ce
qu'est stderr et stdout))
--
Hugo NPN (i --> ee)
Ce programme ne gère pas le "groupe wheel" utilisé pour restreindre
l'accès par su au compte Super-Utilisateur, car il pourrait aider des
administrateurs systèmes fascistes à disposer d'un pouvoir incontrôlé
sur les autres utilisateurs. (man su)
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
-- Hugo NPN (i --> ee) Ce programme ne gère pas le "groupe wheel" utilisé pour restreindre l'accès par su au compte Super-Utilisateur, car il pourrait aider des administrateurs systèmes fascistes à disposer d'un pouvoir incontrôlé sur les autres utilisateurs. (man su)
Hugolino
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article , Hugolino wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de taille" ?
Hugo (still a newbie)
-- <nbc> dev/hda10: Invalid argument passed to ext2 library while setting <nbc> GRRR, me faire ca a moi a cette heure la juste avant le grog du soir <Ol> trooooonçoonneuuuuse -+- Ol in Guide du linuxien pervers - "Monsieur connait ses classiques."
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article <slrncc12lr.44r.hugolino@Deborah.RocknRoll.org>,
Hugolino <hugolino@fri.fr> wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le
fichier liste_répertoires.
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Donc, au final, stdout et stderr sont redirigés vers le fichier
liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
La partie (> liste_répertoires) redirige la sortie standard vers le
fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Donc au final, stderr est redirigé vers le terminal et stdout vers le
fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que
stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de
taille" ?
Hugo (still a newbie)
--
<nbc> dev/hda10: Invalid argument passed to ext2 library while setting
<nbc> GRRR, me faire ca a moi a cette heure la juste avant le grog du soir
<Ol> trooooonçoonneuuuuse
-+- Ol in Guide du linuxien pervers - "Monsieur connait ses classiques."
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article , Hugolino wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de taille" ?
Hugo (still a newbie)
-- <nbc> dev/hda10: Invalid argument passed to ext2 library while setting <nbc> GRRR, me faire ca a moi a cette heure la juste avant le grog du soir <Ol> trooooonçoonneuuuuse -+- Ol in Guide du linuxien pervers - "Monsieur connait ses classiques."
Unknown
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille. Un fichier = une bouteille. Un entonnoir = une redirection de l'eau = tes datas.
quand tu fais > fichier tu dis : je mets l'entonnoir stdout au dessus de la bouteille étiquettée fichier. apres comme au dessus d'une bouteille tu ne peux avoir qu'un seul entonnoir (sinon tu en fous partout) quand tu fais 2>&1 tu dis déverse stderr dans l'entonnoir stdout afin que tout aille dans la bouteille fichier. donc n'oublie pas que le shell interprete ce que tu tapes, du coup si tu dis 2>&1 > fichier le shell prend l'entonnoir stderr et le positionne au dessus de l'entonnoir stdout qui pointe par defaut sur le fichier "écran" ensuite il déplace l'entonnoir stdout vers "fichier" mais sans déplacer stderr. résultat l'entonnoir stderr déversera tout dans la bouteille "écran" et stdout dans la bouteille "fichier"
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ?
(Suis pas developpeur justement (même si je fais semblant de savoir ce
qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille.
Un fichier = une bouteille.
Un entonnoir = une redirection
de l'eau = tes datas.
quand tu fais > fichier tu dis : je mets l'entonnoir stdout au dessus de
la bouteille étiquettée fichier.
apres comme au dessus d'une bouteille tu ne peux avoir qu'un seul
entonnoir (sinon tu en fous partout) quand tu fais 2>&1 tu dis déverse
stderr dans l'entonnoir stdout afin que tout aille dans la bouteille
fichier.
donc n'oublie pas que le shell interprete ce que tu tapes, du coup si tu
dis 2>&1 > fichier le shell prend l'entonnoir stderr et le positionne au
dessus de l'entonnoir stdout qui pointe par defaut sur le fichier "écran"
ensuite il déplace l'entonnoir stdout vers "fichier" mais sans déplacer
stderr. résultat l'entonnoir stderr déversera tout dans la bouteille
"écran" et stdout dans la bouteille "fichier"
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille. Un fichier = une bouteille. Un entonnoir = une redirection de l'eau = tes datas.
quand tu fais > fichier tu dis : je mets l'entonnoir stdout au dessus de la bouteille étiquettée fichier. apres comme au dessus d'une bouteille tu ne peux avoir qu'un seul entonnoir (sinon tu en fous partout) quand tu fais 2>&1 tu dis déverse stderr dans l'entonnoir stdout afin que tout aille dans la bouteille fichier. donc n'oublie pas que le shell interprete ce que tu tapes, du coup si tu dis 2>&1 > fichier le shell prend l'entonnoir stderr et le positionne au dessus de l'entonnoir stdout qui pointe par defaut sur le fichier "écran" ensuite il déplace l'entonnoir stdout vers "fichier" mais sans déplacer stderr. résultat l'entonnoir stderr déversera tout dans la bouteille "écran" et stdout dans la bouteille "fichier"
Bruno Jargot
In article , Hugolino wrote:
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article , Hugolino wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Une sortie est redirigée vers quelque part. Ce quelque part peut être un fichier texte, un terminal, ... Dire que la sortie erreur est redirigée vers le même endroit que la sortie standard signifie : - Quel est la destination de la sortie standard ? : le fichier liste_répertoires dans ce cas. - Alors la sortie erreur est redirigée vers liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
On lit *de gauche à droite* : Au moment ou 2>&1 est exécuté, la sortie standard est dirigé vers le terminal. Donc la sortie erreur est redirigé vers le terminal. *Après*, la sortie standard est redirigé vers le fichier liste_répertoire. C'est seulement la sortie standard qui est redirigé. Il n'existe *aucun lien* entre la sortie erreur et la sortie standard ! Donc il n'y a strictement aucune raison de rediriger la sortie erreur quand on redirige la sortie standard.
La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Non, tu n'as rien mergé du tout. mauvaise interprétation.
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de taille" ?
La commande 2>&1 ne signifie pas : stderr est redirigé vers stdout ad vitam eternam. Elle signifie : Tu prends l'endroit vers lequel stdout est actuellement redirigé. Tu rediriges stderr vers cet endroit.
Si on déplace stdout *après*, cela n'a strictement aucune influence sur stderr. C'est trop tard.
In article <slrncc2a9b.fk2.hugolino@Deborah.RocknRoll.org>,
Hugolino <hugolino@fri.fr> wrote:
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article <slrncc12lr.44r.hugolino@Deborah.RocknRoll.org>,
Hugolino <hugolino@fri.fr> wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le
fichier liste_répertoires.
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Une sortie est redirigée vers quelque part. Ce quelque part peut être un
fichier texte, un terminal, ...
Dire que la sortie erreur est redirigée vers le même endroit que la
sortie standard signifie :
- Quel est la destination de la sortie standard ? :
le fichier liste_répertoires dans ce cas.
- Alors la sortie erreur est redirigée vers liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier
liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la
sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
On lit *de gauche à droite* :
Au moment ou 2>&1 est exécuté, la sortie standard est dirigé vers le
terminal. Donc la sortie erreur est redirigé vers le terminal.
*Après*, la sortie standard est redirigé vers le fichier
liste_répertoire. C'est seulement la sortie standard qui est redirigé.
Il n'existe *aucun lien* entre la sortie erreur et la sortie standard !
Donc il n'y a strictement aucune raison de rediriger la sortie erreur
quand on redirige la sortie standard.
La partie (> liste_répertoires) redirige la sortie standard vers le
fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Non, tu n'as rien mergé du tout. mauvaise interprétation.
Donc au final, stderr est redirigé vers le terminal et stdout vers le
fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que
stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de
taille" ?
La commande 2>&1 ne signifie pas : stderr est redirigé vers stdout ad
vitam eternam.
Elle signifie : Tu prends l'endroit vers lequel stdout est actuellement
redirigé. Tu rediriges stderr vers cet endroit.
Si on déplace stdout *après*, cela n'a strictement aucune influence sur
stderr. C'est trop tard.
Le Fri, 04 Jun 2004 19:25:31 +0200, Bruno Jargot a écrit:
In article , Hugolino wrote:
ls > liste_répertoires 2>&1
la partie ( > liste_répertoires ) redirige la sortie standard vers le fichier liste_répertoires. La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le fichier liste_répertoires.
OK (quoique je pige pas le sens de "vers le même endroit")
Une sortie est redirigée vers quelque part. Ce quelque part peut être un fichier texte, un terminal, ... Dire que la sortie erreur est redirigée vers le même endroit que la sortie standard signifie : - Quel est la destination de la sortie standard ? : le fichier liste_répertoires dans ce cas. - Alors la sortie erreur est redirigée vers liste_répertoires.
Donc, au final, stdout et stderr sont redirigés vers le fichier liste_répertoires.
OK
ls 2>&1 > liste_répertoires
La partie ( 2>&1) redirige la sortie erreur vers le même endroit que la sortie standard, soit vers le terminal.
Ah ? (mais le tout n'est-il pas redirigé vers liste_répertoire ?)
On lit *de gauche à droite* : Au moment ou 2>&1 est exécuté, la sortie standard est dirigé vers le terminal. Donc la sortie erreur est redirigé vers le terminal. *Après*, la sortie standard est redirigé vers le fichier liste_répertoire. C'est seulement la sortie standard qui est redirigé. Il n'existe *aucun lien* entre la sortie erreur et la sortie standard ! Donc il n'y a strictement aucune raison de rediriger la sortie erreur quand on redirige la sortie standard.
La partie (> liste_répertoires) redirige la sortie standard vers le fichier liste_répertoires.
Pourquoi seulement stdout ? (Puisque j'ai mergé stderr et stdout avant ?)
Non, tu n'as rien mergé du tout. mauvaise interprétation.
Donc au final, stderr est redirigé vers le terminal et stdout vers le fichier liste_répertoires.
Ah ?
Justement j'aurais cru qu'il fallait envoyer stderr sur stdout
On ne redirige pas stderr vers stdout mais vers le même endroit que stdout. nuance de taille.
OK, j'ai touché le point G :) Peux-tu développer cette "nuance de taille" ?
La commande 2>&1 ne signifie pas : stderr est redirigé vers stdout ad vitam eternam. Elle signifie : Tu prends l'endroit vers lequel stdout est actuellement redirigé. Tu rediriges stderr vers cet endroit.
Si on déplace stdout *après*, cela n'a strictement aucune influence sur stderr. C'est trop tard.
Stephane Chazelas
2004-06-05, 08:32(+02), Unknown:
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille. Un fichier = une bouteille. Un entonnoir = une redirection de l'eau = tes datas.
C'est une mauvaise image, qui n'explique pas:
cmd 1> a 2>&1 1> b
On pourrait rajouter un concept de tuyau (d'adaptation) entre les bouteilles et l'entonnoir.
"1> a", ouvre la bouteille "a" met un tuyau (un file handle) dessus et redirige l'entonnoir (file descriptor) 1 sur la bouteille
"2>&1" regarde sur quel tuyau l'entonnoir 1 est branché et redirige l'entonnoir 2 dessus (il y a deux entonnoirs sur ce premier tuyau).
"1> b" ouvre une autre bouteille "b", met un nouveau tuyau dessus et redirige l'entonnoir 1 sur ce nouveau tuyau.
-- Stephane
2004-06-05, 08:32(+02), Unknown:
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ?
(Suis pas developpeur justement (même si je fais semblant de savoir ce
qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille.
Un fichier = une bouteille.
Un entonnoir = une redirection
de l'eau = tes datas.
C'est une mauvaise image, qui n'explique pas:
cmd 1> a 2>&1 1> b
On pourrait rajouter un concept de tuyau (d'adaptation) entre
les bouteilles et l'entonnoir.
"1> a", ouvre la bouteille "a"
met un tuyau (un file handle) dessus et redirige
l'entonnoir (file descriptor) 1 sur la bouteille
"2>&1" regarde sur quel tuyau l'entonnoir 1 est branché et
redirige l'entonnoir 2 dessus (il y a deux entonnoirs sur ce
premier tuyau).
"1> b" ouvre une autre bouteille "b", met un nouveau tuyau
dessus et redirige l'entonnoir 1 sur ce nouveau tuyau.
Le Sat, 05 Jun 2004 03:54:05 +0200, Hugolino a écrit :
Le Fri, 04 Jun 2004 18:09:28 +0200, Unknown a écrit:
traduit > fic par fopen(fic) et le 2>&1 par dup(1) tu comprends de suite.
Peux-tu développer, stp ? (Suis pas developpeur justement (même si je fais semblant de savoir ce qu'est stderr et stdout))
si tu veux on va prendre comme image un entonnoir de l'eau et un bouteille. Un fichier = une bouteille. Un entonnoir = une redirection de l'eau = tes datas.
C'est une mauvaise image, qui n'explique pas:
cmd 1> a 2>&1 1> b
On pourrait rajouter un concept de tuyau (d'adaptation) entre les bouteilles et l'entonnoir.
"1> a", ouvre la bouteille "a" met un tuyau (un file handle) dessus et redirige l'entonnoir (file descriptor) 1 sur la bouteille
"2>&1" regarde sur quel tuyau l'entonnoir 1 est branché et redirige l'entonnoir 2 dessus (il y a deux entonnoirs sur ce premier tuyau).
"1> b" ouvre une autre bouteille "b", met un nouveau tuyau dessus et redirige l'entonnoir 1 sur ce nouveau tuyau.