Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2006, 15h20   #1
Membre habitué
 
Inscription : janvier 2004
Messages : 507
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 507
Points : 101
Points : 101
Par défaut Redirection d'erreur ?

salut,

J'essai de comprendre la redirection d'erreurs et sur chaque site on presente cela :
Citation:

Redirige la sortie d'erreur (2) et la sortie standard (1) sur l'entrée de la commande suivante 2>&1 |

Redirige la sortie d'erreur et la sortie standard dans un fichier 2>&1 >

Redirige la sortie d'erreur et la sortie standard à la fin d'un fichier existant 2>&1 >>
sincerement je ne comprend pas trop
???

Merci d'avance
donny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 16h00   #2
Membre habitué
 
Inscription : août 2003
Messages : 157
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 157
Points : 138
Points : 138
Code :
program.exe >sortie.txt  2>sortie_error.txt
Dans cet appel, la sortie standard sera redirigée vers le fichier.txt
et la sortie erreur sera redirigee vers le fichier sortie_error.txt

utiliser ">>" au lieu de ">" pour concatener.
Luther13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 16h06   #3
Membre éclairé
 
Inscription : mai 2004
Messages : 376
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 376
Points : 343
Points : 343
T'as 3 "flux" standard sous linux stdin, stdout et stderr. Tu peux rediriger tes flux de sortie avec > ou >>. > = crée (ou écrase) un fichier et ecrit dedans. >> = ajoute à la fin du fichier. Les sorties standard portent un numéro (stdout = 1 et stderr = 2) par défaut (sans nombre devant le >), c'est stdout qui est utilisé.
Comme un exemple vaut tous les discourts :
Code :
1
2
3
4
5
./monprog >sortie.txt  # redirige stdout vers sortie.txt en l'écrasant
./monprog 1>sortie.txt  # idem
./monprog 2>sortie.txt  # redirige sterr vers sortie.txt en l'écrasant
./monprog 2>&1   # redirige stderr vers stdout 
./monprog 2>&1 >> toto.txt # redirige stderr vers stdout et redirige stdout (donc le tout) vers toto.txt en mode append
getupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 10h10   #4
Membre habitué
 
Inscription : janvier 2004
Messages : 507
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 507
Points : 101
Points : 101
donc en faite
avec cela
Code :
program.exe >sortie.txt  2>sortie_error.txt
si j'ai une erreur elle sera diriger vers sortie_error.txt

et avec cela
Code :
program.exe >sortie.txt  2>&1
elle sera diriger vers sortie.txt
donny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 10h32   #5
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Citation:
Envoyé par donny
donc en faite
avec cela
Code :
program.exe >sortie.txt  2>sortie_error.txt
si j'ai une erreur elle sera diriger vers sortie_error.txt
Exact

Citation:
Envoyé par donny
et avec cela
Code :
program.exe >sortie.txt  2>&1
elle sera diriger vers sortie.txt
Inexact
En fait dans ce cas de figure, ici tu redirige la sortie std.err vers std.out et non vers sortie.txt
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h10.


 
 
 
 
Partenaires

Hébergement Web