IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Retour sur sortie standard et exit avec un numéro


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut Retour sur sortie standard et exit avec un numéro
    Bonjour,

    Sur un fichier .sh

    je voudrais contrôler un paramètre à l'aide d'un écho et de lui donner un chiffre en erreur ( exit ) et en affichage sur la sortie standard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [ $# -eq 0 ] && echo "pas de reponse"; exit 3 >1&                   
    [ $# -gt 1 ] && echo "trop de reponse"; exit 4 >&1                               
    [ "$1" == o -o "$1" == O ] && echo "oui" && echo "oui"; exit 0 >&1                                          
    [ "$1" == n -o "$1" == N ] && echo "non"; exit 1 >&1                                          
    [ "$1" != n -o "$1" != N -o "$1" != o -o "$1" != O ] && echo "erreur"; exit 5 >&1
    la première ligne fonctionne mais ne me donne pas le bon retour d'erreur (3), si quelqu'un pouvait me donner quelques conseils...
    je ne veux pas utiliser le if

    merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Bonjour,

    Si j'ai bien compris, quel que soit le nombre de paramètres et leur valeur, ton script s'interrompt dès la première ligne avec le code retour 3.
    Ce comportement est tout à fait normal.

    Le point-virgule est ici l'équivalent d'un retour à la ligne.
    Donc ta première ligne s'exécute ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [ $# -eq 0 ] && echo "pas de param"
    exit 3 >&1
    Si tu veux que la sortie dépende du message d'erreur, il suffit qu'elle lui soit liée logiquement.
    Tu pourrais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [ $# -eq 0 ] && echo "pas de param"
    [ $# -eq 0 ] && exit 3
    Mais le test serait redondant.

    Sachant que l'exécution de la commande echo sera couronnée de succès mais ne s'exécutera que si [ $# -eq 0 ] est vérifié, il sera plus simple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ $# -eq 0 ] && echo "pas de param" && exit 3
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    bonjour

    normal car tu as écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [ $# -eq 0 ] && echo "pas de param"; 
    exit 3 >&1;                   
    [ $# -gt 1 ] && echo "trop de reponse";
    exit 4 >&1
    Tu sors toujours (ici) ligne 2

    ps: un echo est par défaut dans tty1 et faire la redirection après le sortie du programme ... mais je n'ai peut-être pas bien compris si tu désires en plus afficher le code erreur ? alors tu l'ajoutes à ton echo
    $moi= ( !== ) ? : ;

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par bernards111 Voir le message
    je voudrais contrôler un paramètre à l'aide d'un écho et de lui donner un chiffre en erreur ( exit ) et en affichage sur la sortie standard.
    Dans ce cas, il te faut afficher sur la sortie standard puis sortir en erreur. L'instruction exit 3 >1& ne veut absolument rien dire (en fait elle signifie "envoie l'affichage de exit sur la sortie standard" mais comme exit n'affiche rien...)

    Ensuite il faut se méfier des raccourcis. Dans l'instruction expression && commande1 ; commande2, le point-virgule étant un séparateur, la commande 2 sera tout le temps exécutée et ce, même si l'expression est fausse.
    On peut passer par des parenthèses, comme expression && ( commande1 ; commande2 ) mais les parenthèses induisant un sous-processus, je ne sais pas comment le script se comportera quand la "commande2" est un "exit" (et franchement pour ce genre d'inutilité j'ai un peu la flemme de chercher).
    Donc tu veux écrire un script, tu écris un script !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if [ $# -eq 0 ]; then
    	echo "pas de reponse"
    	exit 3
    fi
    ...
    Et là, demandé proprement, ton script fera les choses proprement.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    (en fait elle signifie "envoie l'affichage de exit sur la sortie standard" mais comme exit n'affiche rien...)
    Non. En fait, elle veut dire mais l'affichage standard dans le fichier 1 et fait le en arrière plan. La preuve en image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ echo 3 >1&
    [1] 347432
    $ 
    [1]+  Fini                    echo 3 > 1
    $ cat 1 
    3
    $
    @al1_24 : Que de détours ! Pourquoi ne pas regrouper les commandes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ $# -eq 0 ] && { echo "pas de param"; exit 3;}
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    @al1_24 : Que de détours ! Pourquoi ne pas regrouper les commandes ?
    Je pense qu'il n'a pas conscience qu'elles sont dégroupées. Les mettant sur la même ligne, il doit probablement les voir comme déjà implicitement regroupées...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    merci pour ta réponse al1_24 al1_24

    Sve@r>> je voulais le faire sans les if

    Flodelarab >> ha ok , je n'avais pas vu cette exemple [ $# -eq 0 ] && { echo "pas de param"; exit 3;}

    La solution 3 est la mieux sinon les enchainements d'expression ne se faisait pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/bash                                                                               
     
    [ $# -eq 0 ] && echo "Vous n'avez pas donne votre reponse" && exit 3                      
    [ $# -gt 1 ] && echo "Donnez une seule reponse" && exit 4                                 
    [ "$1" == o -o "$1" == O ] && echo "oui" && echo "oui" && exit 0                          
    [ "$1" == n -o "$1" == N ] && echo "non" && exit 1                                        
    [ "$1" != n -o "$1" != N -o "$1" != o -o "$1" != O ] && echo "Pas compris" && exit 5
    j y vois un peu plus clair..

    merci à vous 3 (seulement 2 semaines de bash mais bon , j'avance)

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Citation Envoyé par Bernard111[/quote
    je ne veux pas utiliser le if
    c'est quoi ce gros caprice ?

    de plus, si je passe "oui, non, peut-être" à ton script, ça comptera comme un seul argument.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Permettez quand même d'alerter sur les connecteurs && et ||. Ils s'activent sur la dernière commande effectuée. Donc une commande comme celle qui suit pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande1 && commande2 || commande3
    On aurait tort de croire que cela imite un if. Si la commande2 plante, autrement dit, si elle renvoie un code erreur non nul, alors la commande3 est exécutée !!! On a alors exécution de commande1, commande2, commande3.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bernards111 Voir le message
    Sve@r>> je voulais le faire sans les if
    J'espère que tu as écrit cet imparfait de l'indicatif parce que tu as pris conscience qu'en shell, on ne peut pas toujours faire comme on veut. Le shell reste limité, c'est à toi te t'adapter à ce qu'il te propose.
    Ceci dit, je ne vois pas ce qu'un "if" peut avoir de rédhibitoire.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    ok

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    Sve@r Sve@r>>> j'ai bien conscience de tt ça... c'est juste un exercice..
    Je trouve la solution sans contournement. De mon point de vue ça me permet de progresser .
    Je ne comprenais pas pourquoi un simple "; exit" derrière le echo ne fonctionnait pas.

    J'avais déjà la solution du if.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Permettez quand même d'alerter sur les connecteurs && et ||. Ils s'activent sur la dernière commande effectuée. Donc une commande comme celle qui suit pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande1 && commande2 || commande3
    On aurait tort de croire que cela imite un if. Si la commande2 plante, autrement dit, si elle renvoie un code erreur non nul, alors la commande3 est exécutée !!! On a alors exécution de commande1, commande2, commande3.
    Tu peux me détailler ta réponse Flodelarab stp ?.

    si je fait :

    $ [ -f fichier ] && cat fichier || echo "le fichiern'existe pas" >&2

    Mon résonnement :
    si fichier existe, le résultat de [ -f fichier ] est 0 ce qui provoque l’exécution de la commande
    cat fichier. Cette dernière réussit, son code retour est 0 et par conséquent la commande echo
    est ignorée
    si fichier n’existe pas, le résultat de [ -f fichier ] est 1, la commande cat fichier ne s’exécute
    pas, le résultat de l’enchaînement [ -f fichier ] && cat fichier est le code retour de la seule
    commande qui a été exécutée : [ -f fichier ], c’est-à-dire 1. Par conséquent la commande echo
    qui suit || sera exécutée et le message s’affichera.

    donc ce n'est pas toujours correcte ce genre d'expression ?, il faudrait rajouter un contrôle du code retour ?

    merci

  14. #14
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bernards111 Voir le message
    donc ce n'est pas toujours correcte ce genre d'expression ?
    Tout dépend de la commande milieu
    expression && commande1 || commande2
    • si expression est fausse, ça exécute la commande 2
    • si expression est vraie, ça exécute la commande 1. Mais si cette exécution échoue pour une raison X ou Y, ça exécute aussi la commande 2


    Citation Envoyé par bernards111 Voir le message
    il faudrait rajouter un contrôle du code retour ?
    Il faut surtout éviter de s'accrocher à cette écriture en pensant que c'est le top du top en shell. Il n'y a rien de honteux à revenir au bon if de base, surtout si ça évite les effets de bord...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Un petit exemple parlant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ ls 1 && ls 2 || echo "Ça marche pas"
    1
    ls: impossible d'accéder à '2': Aucun fichier ou dossier de ce type
    Ça marche pas
    Le fichier nommé "1" existe puisque notre faute de frappe du début de discussion a créé ce fichier. Donc le premier "ls" a marché. Par conséquent, le deuxième ls est exécuté. Mais le fichier nommé 2 n'existe pas. Donc le code retour est non nul. Donc la commande 3 s'exécute. Et on a une sortie étonnante où les 3 bouts de code sont exécutés.

    Note orthographique :
    Les cloches résonnent. D'où leur résonnement.
    Les humains raisonnent. D'où leur raisonnement.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tout dépend de la commande milieu
    expression && commande1 || commande2
    • si expression est fausse, ça exécute la commande 2
    • si expression est vraie, ça exécute la commande 1. Mais si cette exécution échoue pour une raison X ou Y, ça exécute aussi la commande 2



    Il faut surtout éviter de s'accrocher à cette écriture en pensant que c'est le top du top en shell. Il n'y a rien de honteux à revenir au bon if de base, surtout si ça évite les effets de bord...
    oui et c'est quand même plus simple.

  17. #17
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bon, ça ne va pas plaire à Sve@r (les :) mais pour reprendre le problème de Flodelarab, si on ne veux pas que la deuxième commande soit fautive de l'execution de la 3ème commande, on peut le faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls 1  && { ls 2; :; } || echo "Ça marche pas"
    Mais c'est une très mauvaise pratique donc je ne développerais pas le pourquoi du comment
    Cordialement.

  18. #18
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bon, ça ne va pas plaire à Sve@r (les :)
    Tu me connais tellement bien
    Philosophie Python: explicite vaut mieux qu'implicite => ls 1 && { ls 2; true; } || echo "Ça marche pas"

    J'ai aussi tenté ls 1 && { ls 2; exit 0; } || echo "Ça marche pas" et j'ai vu ma fenêtre se fermer

    Citation Envoyé par disedorgue Voir le message
    Mais c'est une très mauvaise pratique
    En général je me sers des && || pour afficher des messages X ou Y selon l'évènement (truc && echo X || echo Y) ou bien pour remplir une variable (truc && var=X || var=Y). Pour le reste je ne me sépare pas du bon vieux "if/fi" bien robuste.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  19. #19
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Ah! C'est génial. Alors qu'avec un sous-shell que tu apprécies tant, cela ne serait pas arriver.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls 1 && ( ls 2; exit 0;) || echo "Ça marche pas"
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. probleme d'affichage sur sortie standard
    Par lastico21000 dans le forum C
    Réponses: 6
    Dernier message: 27/10/2011, 20h39
  2. Rediriger la sortie standard d'erreur avec un traitement
    Par bubulemaster dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/02/2011, 18h16
  3. Ecrire sur la sortie standard avec write
    Par overlolo dans le forum Débuter
    Réponses: 8
    Dernier message: 13/04/2009, 00h07
  4. Affichage sur sortie standard
    Par boubouc dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/05/2006, 04h54
  5. PB sortie standard avec les PTHREAD !!!
    Par djspit dans le forum C++
    Réponses: 15
    Dernier message: 19/11/2004, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo