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 :

Redirection des entrées ET sorties : << ET | tee


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut Redirection des entrées ET sorties : << ET | tee
    Bonjour,

    Dans mon programme je lance un second exécutable (qui m'est fourni, je ne peux pas le modifier).
    Comme celui ci fait un "get()", pour lui "répondre j'utilise la redirection temporaire des entrées "<<"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lexecutable << marqueur_fin
    parametre
    marqueur_fin
    ça marche très bien.

    Je voudrais en plus récupérer les sorties tout en continuant leur affichage dans la console, donc je voulait utiliser "| tee sortie"

    Sauf que di je fait bêtement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lexecutable | tee sortie << marqueur_fin
    parametre
    marqueur_fin
    la redirection de l'antrée s'applique au pipe et donc -entre autre- mon fichier sortie ne contiendra que "parametre".
    Du coup j'ai essayé sans trop d'espoir de mettre mon "| tee sortie" un peu partout, mais à faire n'importe quoi on devient n'importe qui certes mais néanmoins on n'obtient rien de bon.

    Donc voilà ma question, comment rediriger à la fois mes entrées et mes sorties?

  2. #2
    Membre expérimenté Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Je reformule ma question...

    vu que si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lexecutable > sortie << marqueur_fin
    parametre
    marqueur_fin
    ça fonctionne donc je sais rediriger mes entrées et mes sorties.

    Mais ça ne change rien à mon problème, je n'arrive pas à conserver l'affichage des sorties sur la console ET récupérer ses sorties dans un fichier ET rediriger mes entrées.

    Si j'écris mon bout de code tel quel dans la console il refuse de l'executer, parlant "d'ambigous input redirect".
    Du coup je suis plein d'espoir : s'il peut savoir quand des redirections sont ambigües, il existe sans doute un moyen de lever ces ambigüités!

    edit:
    Ou pas...
    puisque si je place mon "| tee sortie" après mon marqueur de fin de redirection, la commande | s'applique à mes entrées redirigées (?? enfin ça à l'air), mon soft tourne normalement, avec affichage dans la console, mais dans mon fichier sortie je n'ai que "parametre"..


  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    salut.

    tu peux faire tes entrées et sorties comme tu le fais (sans avoir d'affichage écran) puis dans un autre terminal, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tail -F fichierdesortie
    ça te permettra de lire le fichier de sortie de ton programme au fur et à mesure de sa création...

    j'espère que ça correspond à ce que tu cherche...

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (commande << EOF
    ....
    EOF 
    )| tee
    devrai marcher sur sh et ksh

    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    commande << marqueur | tee
    ....
    marqeur

  5. #5
    Membre expérimenté Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Citation Envoyé par gregory2526 Voir le message
    salut.

    tu peux faire tes entrées et sorties comme tu le fais (sans avoir d'affichage écran) puis dans un autre terminal, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tail -F fichierdesortie
    merci, mais ce n'est pas ce que je recherchais :
    ma contrainte c'est que l'utilisateur voit ses sorties comme s'il lancait l'executable à la main, et mon programme en plus récupère les sorties pour lui (et vérifier que tout est normal)
    Citation Envoyé par frp31 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (commande << EOF
    ....
    EOF 
    )| tee

    Alors là j'ai honte.
    Parce que depuis le début je me dis "il faudrait pouvoir mettre des parenthèses", mais j'étais tellement persuadé que c'était syntaxiquement impossible que je n'ai jamais essayé.

    Ca marche super bien! Merci ô frp31!

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    C'est rudement bien cette commande avec EOF.
    C'est pratique quand on n'a pas envie d'écrire 36 fois echo dans son script.
    Oui, on pourrait mettre des \n dans echo, mais, c'est quand même sympa d'avoir un affichage simili wysiwig.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

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

Discussions similaires

  1. Gérer des entrées et sorties
    Par KNouch dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/06/2012, 08h34
  2. Réponses: 0
    Dernier message: 28/04/2010, 01h31
  3. Redirection des entrées/sorties du process (ping)
    Par ero-sennin dans le forum Langage
    Réponses: 29
    Dernier message: 18/11/2008, 18h01
  4. gestion des entrées-sorties
    Par bandit_debutant dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 25/11/2006, 14h55
  5. gestion des entrées et sortie en java
    Par lecyberax dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 14/05/2006, 22h51

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