Bonjour je cherche a rediriger en bash stdout et stderr vers un meme fichier sachant qu' Il faut pas que cela écrase ce qui est déjà dans le fichier (on logue tout les messages).
$ rm blablah >> monfichier.trace 2>&1
Citation :
Est-ce possible aussi de rendre cette redirection active pour toute une partie d'un scipt bash puis de la desactiver ensuite ?
Dans un script tu peux faire quelque chose comme ça :
Code :
exec3>&1 # "sauvegarder" stdout
exec4>&2 # "sauvegarder" stderr
exec1>>monfichier.trace #rediriger stdout vers ton fichier
exec 2>>monfichier.trace #rediriger stderr vers ton fichier
# exécuter tes commandes
rm foo
echo bar
rm baz
exec1>&3 # restaurer la "valeur" de stdout
exec2>&4 # restaurer la "valeur" de stderr
exec3>&- # fermer le FD 3
exec 4>&- # fermer le FD 4
Ou sinon, tu peux tout simplement utiliser des parenthèses :
Code :
(rm foo
echo bar
rm baz ) >> monfichier.trace 2>&1
jumar
Bonjour je cherche a rediriger en bash stdout et stderr vers un meme fichier sachant qu' Il faut pas que cela écrase ce qui est déjà dans le fichier (on logue tout les messages).
J'arrive à rediriger soit stderr soit stdout :
$ rm blablah 2>>monfichier.trace
et :
$ rm blahblah 1>>monfichier.trace
mais pas les deux à la fois :
$ rm blahblah &>>monfichier.trace
ne fonctionne pas sur ma machine.
Est-ce possible aussi de rendre cette redirection active pour toute une partie d'un scipt bash puis de la desactiver ensuite ?