Bonjour,
J'aimerais avoir vos conseils sur un ptit probleme.
Voila j'aimerais regirigé la sortie d'une commande vers un fichier texte.
Comme ./commande -argument > aa.txt
Mais dans le cas ici ça fonctionne pas
Voici ma commande:
mysql -uroot -pmotdepasse root_base < /home/alex/dump.sql
J'ai essayer de rajouté > aa.txt a la fin mais il reste vide et le message d'erreur s'affiche quand meme a l'écran
J'ai meme essayer | tee aa.txt
J'aimerais avoir dans le fichier texte autant les erreurs retourné par mysql que ceux retourné par bash si /home/alex/dump.sql existe pas....
Merci de votre aide.
# stderr != stdout
Posté par symoon . Évalué à 6.
Or sous UNIX, on distingue la sortie standard (stdout) de la sortie des erreurs (stderr).
Lorsque tu fais une redirection de la sortie, tu rediriges uniquement stdout.
Si tu veux rediriger stderr :
./programme 1>log_stdout 2>log_stderr
Plus de détails :
http://abs.traduc.org/abs-5.0-fr/ch19.html
[^] # Re: stderr != stdout
Posté par Dan . Évalué à 1.
Donc ça donnerait :
./programme >& log_stderr
Mais la réponse du dessus marche aussi... Je la trouve même plus logique.
[^] # Re: stderr != stdout
Posté par symoon . Évalué à 5.
Faux, comme on peut le vérifier via le lien indiqué, & tout seul correspond à stdout ET stderr, pas seulement stderr.
# Voir gestion des flux
Posté par Obsidian . Évalué à 2.
$ commande 2>&1 > log.txt
Et hop, tu rediriges le canal numéro 2 (stderr) vers le 1 (stdout), puis tu loggues normalement la sortie standard.
Note que les trux flux standards 0-stdin, 1-stdout et 2-stderr sont bien sûr définis en shell, mais que bash t'autorise à manipuler autant de descripteurs que tu le souhaites à la fois. Pour plus d'infos :
$ man bash
Section REDIRECTION.
Kilométrique, mais très instructif.
[^] # Re: Voir gestion des flux
Posté par Étienne . Évalué à 2.
$ commande 2>&1 > log.txt
Cela ne marchera pas car la redirection est fait dans le mauvais ordre et seul stdout sera redirigé vers log.txt. Il faut faire
$ command > log.txt 2>&1
Etienne
[^] # Re: Voir gestion des flux
Posté par Gyro Gearllose . Évalué à 1.
Évidement, ça redirige tout (stdout et stderr) vers log.txt, mais comme tout bon informaticien digne de ce nom, je suis feignant, et donc, je pensais utile d'apporter cette précision, car ça fait moins de caractères à frapper (aïe).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.