Enregistrer la sortie standard du shell

gnugo -  
 gnugo -
Bonjour,

Je voudrais enregistrer dans un fichier tout ce qui est affiché dans la sortie standard (STDOUT) de mon terminal shell

La commande script permet de faire cela mais enregistre également STDERR et STDIN, ce que je ne souhaite pas.

Sauriez-vous comment procéder ?
Merci :)
A voir également:

2 réponses

dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
n'enregistrer que stdout dans un fichier
$ bash
$ exec > >(tee log)
$ uname
Linux
$ ls qqq
ls: cannot access qqq: No such file or directory
$ date
Wed Aug  1 08:52:19 CEST 2012
$ 
$ exit
exit
$ 
$ cat log
Linux
Wed Aug  1 08:52:19 CEST 2012
$ 
1
gnugo
 
Merci
Désolé j'ai oublié de préciser ce que j'avais déjà essayé :/

Cette solution ne fonctionne pas tout à fait car le comportement du shell n'est plus le même puisque STDOUT n'est plus considéré comme un terminal.

Donc par exemple la commande ls va se comporter différemment, ainsi que de nombreux autres programmes et scripts, ce qui me pose problème.

Ça va donc être dur de procéder avec une redirection, à moins de pouvoir "simuler" qu'on utilise un terminal mais je n'ai pas trouvé comment.

La commande script, elle ne pose pas ce problème
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Donc par exemple la commande ls va se comporter différemment, ainsi que de nombreux autres programmes et scripts, ce qui me pose problème.
Tu peux développer s'il te plaît ?

Je ne vois pas où la solution de dubcek coince ;-\
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
si tu appliques le exec, un ls s'affiche sur une colonne, puisque il y a un pipe
ce n'est pas le cas avec script
il va falloir regarder les sources de script !!
0
gnugo
 
http://honeypots.sourceforge.net/script.c.solaris.txt
0
gnugo
 
Heureusement qu'il y a les commentaires!
Mais j'ai quand même bien du mal
J'espère qu'on pourra reproduire ça en bash
0
gnugo
 
avec votre aide :-)
0