Plus d'informations : 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

Accueil > Linux > Développement > [BASH] Logs - Redirection de la sortie standard pour l’ensemble d’un script