Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un
autre processus ? Par exemple, j'aimerais éxécuter un script de façon à
ce que ses sorties standard et d'erreur soient bien affichées dans le
terminal comme d'habitude, mais en plus écrites respectivement dans
script.log et script.err.
Pour la sortie standard, je sais le faire avec
./script | tee script.log
et je ne trouve pas comment envoyer la sortie d'erreur du script vers
l'entrée d'un deuxième tee.
Merci d'avance pour vos réponses, et/ou un pointeur précis vers une bonne
doc (google fournit plein de tutoriaux sur les redirections, mais pour
passer du niveau tutoriel au niveau au-dessus, c'est plus dur).
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
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
Nicolas George
Manuel Pégourié-Gonnard wrote in message :
./script | tee script.log
./script 2>&1 | tee script.log
Pour comprendre les redirections un peu complexes, il faut savoir deux choses : elles sont faites dans l'ordre où elles apparaissent dans la ligne de commande, un pipe correspond à une redirection faite sur 1 en tout premier.
Manuel Pégourié-Gonnard wrote in message
<20090713135301.5303.69169.XPN@roth.elzevir.fr>:
./script | tee script.log
./script 2>&1 | tee script.log
Pour comprendre les redirections un peu complexes, il faut savoir deux
choses : elles sont faites dans l'ordre où elles apparaissent dans la ligne
de commande, un pipe correspond à une redirection faite sur 1 en tout
premier.
Pour comprendre les redirections un peu complexes, il faut savoir deux choses : elles sont faites dans l'ordre où elles apparaissent dans la ligne de commande, un pipe correspond à une redirection faite sur 1 en tout premier.
Damien Wyart
* Manuel Pégourié-Gonnard <mpg+ in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un autre processus ? Par exemple, j'aimerais éxécuter un script de façon à ce que ses sorties standard et d'erreur soient bien affichées dans le terminal comme d'habitude, mais en plus écrites respectivement dans script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Je n'ai pas de bon pointeur Internet sous la main ; normalement une lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est vrai que ça n'est pas simple au début...
-- DW
* Manuel Pégourié-Gonnard <mpg+news@elzevir.fr> in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un
autre processus ? Par exemple, j'aimerais éxécuter un script de façon à
ce que ses sorties standard et d'erreur soient bien affichées dans le
terminal comme d'habitude, mais en plus écrites respectivement dans
script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Je n'ai pas de bon pointeur Internet sous la main ; normalement une
lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est
vrai que ça n'est pas simple au début...
* Manuel Pégourié-Gonnard <mpg+ in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un autre processus ? Par exemple, j'aimerais éxécuter un script de façon à ce que ses sorties standard et d'erreur soient bien affichées dans le terminal comme d'habitude, mais en plus écrites respectivement dans script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Je n'ai pas de bon pointeur Internet sous la main ; normalement une lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est vrai que ça n'est pas simple au début...
-- DW
Manuel Pégourié-Gonnard
Bonjour Damien,
Damien Wyart scripsit:
* Manuel Pégourié-Gonnard <mpg+ in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un autre processus ? Par exemple, j'aimerais éxécuter un script de façon à ce que ses sorties standard et d'erreur soient bien affichées dans le terminal comme d'habitude, mais en plus écrites respectivement dans script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Exactement ce que je voulais. Merci beaucoup.
Je n'ai pas de bon pointeur Internet sous la main ; normalement une lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est vrai que ça n'est pas simple au début...
Je viens de lire la partie « redirections » de man zshall, j'y ai découvert plein d'opérateurs de redirection et d'options, mais ce sui me manque souvent en pratique, c'est de savoir comment les utiliser dans le bon ordre (par exemple, penser à un sous-shell comme ci-dessus). J'imagine que ça vient avec la pratique et en lisant des exemples.
-- Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Bonjour Damien,
Damien Wyart scripsit:
* Manuel Pégourié-Gonnard <mpg+news@elzevir.fr> in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un
autre processus ? Par exemple, j'aimerais éxécuter un script de façon à
ce que ses sorties standard et d'erreur soient bien affichées dans le
terminal comme d'habitude, mais en plus écrites respectivement dans
script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Exactement ce que je voulais. Merci beaucoup.
Je n'ai pas de bon pointeur Internet sous la main ; normalement une
lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est
vrai que ça n'est pas simple au début...
Je viens de lire la partie « redirections » de man zshall, j'y ai
découvert plein d'opérateurs de redirection et d'options, mais ce sui me
manque souvent en pratique, c'est de savoir comment les utiliser dans le
bon ordre (par exemple, penser à un sous-shell comme ci-dessus).
J'imagine que ça vient avec la pratique et en lisant des exemples.
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
* Manuel Pégourié-Gonnard <mpg+ in fr.comp.os.unix:
Comment fait-on pour "piper" la sortie d'erreur d'un processus vers un autre processus ? Par exemple, j'aimerais éxécuter un script de façon à ce que ses sorties standard et d'erreur soient bien affichées dans le terminal comme d'habitude, mais en plus écrites respectivement dans script.log et script.err.
(./script 2>&1 1>&3 | tee errors.log) 3>&1 1>&2 | tee output.log
Exactement ce que je voulais. Merci beaucoup.
Je n'ai pas de bon pointeur Internet sous la main ; normalement une lecture des pages man bash et zsh devrait t'éclairer un peu mais c'est vrai que ça n'est pas simple au début...
Je viens de lire la partie « redirections » de man zshall, j'y ai découvert plein d'opérateurs de redirection et d'options, mais ce sui me manque souvent en pratique, c'est de savoir comment les utiliser dans le bon ordre (par exemple, penser à un sous-shell comme ci-dessus). J'imagine que ça vient avec la pratique et en lisant des exemples.
-- Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/