Accueil > BASH > [BASH] Logs - Redirection de la sortie standard pour l’ensemble d’un (...)

[BASH] Logs - Redirection de la sortie standard pour l’ensemble d’un script

jeudi 16 août 2012


Voir en ligne : Advanced Bash-Scripting Guide : Chapter 16. I/O Redirection - 16.1. Using exec

Il est parfois utile de rediriger l’ensemble de la sortie standard vers un fichier.

Pour se faire 2 solutions,

  • soit nous utilisons le caractère de redirection ">" pour chaque ligne de code ou pour l’ensemble de l’exécution du programme "./toto.sh > logfile.txt"
  • soit nous utilisons la commande exec de la façon suivante
    #!/bin/bash

    LOGFILE=logfile.txt

    # Lier le descripteur 6 avec stdout dans le but de sauvegarder stdout
    exec 6>&1

    # Stdout est maintenant remplacé par le fichier "logfile.txt"
    exec > $LOGFILE

    # ----------------------------------------------------------- #
    # Toutes les sorties standards sont maintenant redirigées vers le fichier

    echo "affichage redirigé dans un fichier"
    # ----------------------------------------------------------- #

    # Restauration de la sortie standard et fermeture du descripteur de fichier 6
    exec 1>&6 6>&-

    # Retour à la normale
    echo "affichage normal"

    exit 0

Enregistrer au format PDF