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

Tcl/Tk Discussion :

[Tcl\Tk] Récupération du résultat d'une commande


Sujet :

Tcl/Tk

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Tcl\Tk] Récupération du résultat d'une commande
    Bonjour,
    J'essaye de développer un script pour interroger périodiquement un équipement et récupérer des compteurs.
    Je voudrais récupérer le résultat de la commande d'interrogation des compteurs soit dans un fichier soit dans une variable.

    Pour rediriger la commande vers un fichier, j'ai essayé le code suivant, mais le fichier ne contient que des lignes vides :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    puts $fic [ expect {
    	")#" {send "display statistics 0 3\n"}
    	} ]
    C'est une question de débutant, mais j'en suis bien un.
    Merci de votre aide.
    Cdlt,
    Kitigwen

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour récupérer le résultat d'une commande classique (expr {3*6} dans mes exemples), il suffit d'utiliser les commandes set ou catch comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set res [expr {3*6}]
    catch {expr {3*6}} res
    Dans les deux exemples ci-dessus, le résultat est affecté à la variable res.

    Par contre, expect est bien plus complexe à utiliser. Pour le maîtriser je te conseille de lire la page du wiki : http://wiki.tcl.tk/201, en particulier la page des exemples : http://wiki.tcl.tk/11583 et celle des tutoriels : http://wiki.tcl.tk/11584.

    Bon apprentissage.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour à tous, j'ai presque le même soucis, j'ai en fait écris des scripts sous Linux qui marchent très bien mais une fois sous Windows je bloque, comment faire pour que cela marche aussi sur Windows, j'ai déjà installé Tcl/tk sur mon Windows mais lorsque je lance une erreur est renvoyée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    invalid command name "./testbs" while executing "./testbs 10.10.30.1 > testbs.txt && sed ni'1p"
    pour mieux expliquer ce que j'ai fait, j'ai dabord écrit des scripts "Expect" par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/expect
    #
    # Written by Ner (bellayma@yahoo.fr) - June 2013
    #
     
    spawn telnet [lindex $argv 0]
     
    expect ":" {send "admin\r"}
    expect ">" {send "1"}
    expect ">" {send "1"}
    expect ">" {}
    puis j'ai associé ces scripts dans un script shell
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
    #
    # Written by Ner (bellaymard@yahoo.fr) - June 2013
    #
    ./testbs 10.10.30.1 > testbs.txt && sed -ni '1p;26p;27p;35p;60p;61p;62p;63p;64p;65p;66p;67p;68p;69p;70p;73p' testbs.txt
    ./testgps 10.10.30.1 > testgps.txt && sed -ni '68p;69p;70p;72p;74p' testgps.txt
    ./testnpu 10.10.30.1 > testnpu.txt && sed -ni '23p;26p;27p;56p;57p' testnpu.txt
    ./testodu 10.10.30.1 > testodu.txt && sed -ni '23p;26p;27p;33p;37p;38p;39p;40p;44p;45p;46p;47p;51p;52p;53p;54p;58p;59p;60p;61p;65p;66p;67p;68p;72p;73p' testodu.txt
    ./testau 10.10.30.1 > testau.txt 
    ./testradac 10.10.30.1 > testradac.txt && sed -ni '43p;46p;47p;57p;58p' testradac.txt
    ./testradauth 10.10.30.1 > testradauth.txt && sed -ni '43p;46p;47p;57p;58p' testradauth.txt
    cat testbs.txt testgps.txt testnpu.txt testodu.txt testau.txt testradac.txt testradauth.txt > 10.10.30.1.txt
    il me faut absolument trouver une solution merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    A la lecture de ton message, il me semble relever un potentiel problème important : bash, sed, /usr/bin et la syntaxe en dot-slash ne sont pas des concepts Windows !

    A moins que ton histoire tourne sous cygwin (ou équivalent), ton problème vient tout simplement de là et n'est pas lié à Tcl.

Discussions similaires

  1. Récupérer le résultat d'une commande shell
    Par espadon1 dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2006, 10h01
  2. Trier le résultat d'une commande dir?
    Par Johns dans le forum Langage
    Réponses: 6
    Dernier message: 13/03/2006, 17h24
  3. Récupération du résultat d'une commande shell
    Par klu dans le forum Langage
    Réponses: 8
    Dernier message: 16/02/2006, 23h34
  4. Réponses: 2
    Dernier message: 02/01/2006, 10h39
  5. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04

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