Bonjour,
je souhaite faire un fichier de log d'une suite de commande.
Mon but est que stdout et stderr soit afficher à l'écran ET qu'il soit redirigé vers un fichier.
Donc une :
mais je voudrais ajouter dans le fichier "ERREUR : " devant les lignes affichées sur stdout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cmd 2>&1 | tee -a monfichier
le problème c'est que j'ai en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #!/bin/sh function truc() { rm ooooooooooo echo "action sans erreur" rm dfoofsidfioi } FIFO=/tmp/tempfifo FICHIER_LOG=truc.txt mkfifo $FIFO rm $FICHIER_LOG (sed 's/^\(.\)/ERREUR : \1/' < $FIFO | tee -a $FICHIER_LOG) & truc 2>$FIFO | tee -a $FICHIER_LOG rm -f $FIFO
Le problème c'est que les lignes ne sont pas dans l'ordre.action sans erreur
ERREUR : rm: ne peut enlever `ooooooooooo': Aucun fichier ou répertoire de ce type
ERREUR : rm: ne peut enlever `dfoofsidfioi': Aucun fichier ou répertoire de ce type
Le but est donc de faire un méthode générique pour pouvoir lancer une suite de commande qui se trouve déjà dans plusieurs script sans à repasser sur chaque commande pour ajouter une option.
Merci
Partager