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 :

lecture écran - lien avec un programme c


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 35
    Points : 24
    Points
    24
    Par défaut lecture écran - lien avec un programme c
    Bonjour,

    Je vous explique mon problème :

    J'ai un script shell dans lequel j'exécute des commandes

    Ensuite dans ce sript j'exécute un fichier c se trouvant dans le même répertoire :

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gcc -o hello hello.c
    ./hello
    ce programme s'il marche affiche par exemple "salut" dans le terminal


    je voudrais ensuite écrire dans le fichier shell des commandes qui s'exécutent que lorsque le fichier c marche c'est à dire affiche salut à l'écran


    mon idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if [ il y a salut d'afficher à l'écran ]
    then
        mes commandes
    fi


    ou si il y a d'autre solution qui permette au script de voir que le programme affiche bien un mot


    merci

  2. #2
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Vous pouvez charger la sortie de hello dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/ksh
     
    HELLO=`./hello`
     
    if [ "$HELLO" = "salut" ]
    then
        echo "Hello a généré salut"
    else
        echo "KO"
    fi
    Signé : Capitaine Jean-Luc Picard

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci de la réponse !

    imaginons que j'ai un fichier c avec plusieurs printf qui s'affichent

    ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("salut ca va\n"); printf("salut\n");

    Y a-t-il une solution pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if [ "salut" s'affiche à l'écran quelque soit les autres "printf" ]
    then
        mes commandes
    fi
    car la réponse précédente ne marche que si "salut" s'affiche et rien d'autres

  4. #4
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Ben oui

    vous pouvez vous inspirer de ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/ksh
     
    # On lance le prg hello | on extrait que les lignes avec salut | et on les compte
    HELLO=`./hello | grep -i salut |  wc -l`
     
    # Si HELLO est plus grand que 0 (-gt=greater than)
    if [ $HELLO -gt 0 ] 
    then
        echo "Hello a généré salut"
    else
        echo "KO"
    fi
    Signé : Capitaine Jean-Luc Picard

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    J'ajouterai qu'il existe une autre syntaxe pour stocker la sortie d'une commande dans une variable :

    Une autre solution plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
     
    if [ "$(./hello | grep salut)" != "" ] 
    then
        echo "Hello a généré salut"
    else
        echo "KO"
    fi
    Cordialement,
    Idriss

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2013, 10h39
  2. Réponses: 6
    Dernier message: 20/08/2010, 08h56
  3. lien vers un programme avec flash8
    Par noufel dans le forum Flash
    Réponses: 1
    Dernier message: 08/05/2009, 08h15
  4. Liens : Aide à la programmation avec DirectX
    Par djbed dans le forum DirectX
    Réponses: 11
    Dernier message: 22/03/2007, 23h30
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

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