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 :

Envoi d'une message sur la console et l'erreur


Sujet :

Shell et commandes GNU

  1. #1
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 142
    Par défaut Envoi d'une message sur la console et l'erreur
    Bonjour,

    J'aimerais envoyer un message à la fois dans un fichier, sur la console et sur la sortie d'erreur.

    Je sais faire ça, mais pas en une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "Message" | tee -a fichier1 # fichier et console
    echo "Message" | tee -a fichier2 >& 2 # fichier et erreur
    Quelqu'un aurait une idée à me donner ?
    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.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Puisque tu es sous linux tu peux utiliser le device /dev/stderr et passer à ça a la commande tee, en plus du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Message" | tee -a fichier1 /dev/stderr

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 142
    Par défaut
    Je n'ai pas le moyen de vérifier sous Linux (je devrai attendre ce soir), mais sous AIX, ça ne fonctionne pas.
    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.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 142
    Par défaut
    Il s'agit d'un script qui doit tourner sous plusieurs environnements, dont AIX et UNIX System-V.

    Quelqu'un aurait-il une autre idée, qui soit plus généralisable ?

    Merci d'avance
    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.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    J'aimerais envoyer un message à la fois dans un fichier, sur la console et sur la sortie d'erreur.
    Euh... je n'ai pas tout compris

    Tu veux systématiquement avoir tous les messages à la fois sur chaque sortie ?

    Parce que en règle générale, STDOUT et STDERR = console, donc...

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Si tu n'as pas de /dev/stderr je pense que la seule solution est de faire deux echo comme tu le fais déjà. Le plus simple serait de te faire un fonction qui fait ça et que tu appelles à la place de echo.

    zipe31, si j'ai bien compris il veut envoyer le même message à la fois sur stdout, sur stderr, et dans un fichier.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par matafan Voir le message
    zipe31, si j'ai bien compris il veut envoyer le même message à la fois sur stdout, sur stderr, et dans un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ ls
    plop
     
    $ ls plop foo 2>&1 | tee -a f2 
    ls: impossible d accéder à foo: Aucun fichier ou dossier de ce type
    plop
     
    $ cat f2 
    ls: impossible d accéder à foo: Aucun fichier ou dossier de ce type
    plop
     
    $

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    zipe31 : sauf qu'avec cette méthode, le cat affiche à chaque fois tout le contenu de f2, et pas seulement le dernier message ajouté.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par matafan Voir le message
    zipe31 : sauf qu'avec cette méthode, le cat affiche à chaque fois tout le contenu de f2, et pas seulement le dernier message ajouté.
    Ben il suffit d'enlever le "-a" de la commande "tee"

    Comme notre ami al1_24 avait employé cette option dans son exemple, j'en ai déduit que c'était une nécessité...

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Non ce que je veux dire c'est que si on n'utilise cette méthode une seule fois alors ça marche, par contre si on s'en sert plusieurs fois (et je suppose que c'est le cas, sinon on n'aurait pas -a) alors à chaque fois le cat ré-affiche les messages précédents.

  11. #11
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 142
    Par défaut
    Merci pour vos réponses.
    Je vais passer par une fonction qui enverra le message en deux fois, une fois sur stderr, l'autre fois sur stdout et le fichier de log (via tee).

    Ces scripts sont utilisés dans un environnement de production où les sorties standard sont redirigées vers des fichiers définis par l'ordonnanceur au moment de l'exécution.
    Sinon, j'aurais fait les redirections directement dans le script.
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoie d'une requête sur les pages jaunes
    Par Chris33 dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 03/11/2010, 16h06
  2. Envoi d'un message sur un autre poste
    Par eric8787 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/03/2008, 12h50
  3. Réponses: 2
    Dernier message: 10/01/2008, 03h24
  4. Envoi d'une image sur un serveur + update table
    Par rickways dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/06/2007, 20h15

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