Enregistrer la sortie standard du shell

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 :)

2 réponses

  1. Contributeur
    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
    1. 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
      1. Contributeur
        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
      2. Contributeur
        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
      3. http://honeypots.sourceforge.net/script.c.solaris.txt
        0
      4. 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
      5. avec votre aide :-)
        0