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 :

cUrl output to String


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 24
    Par défaut cUrl output to String
    Bonjour,

    J'ai un problème avec le résultat d'une commande cUrl que j'utilise dans un script shell.

    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
     
    URL=$(curl -s -u LOG:MDP http://10.10.0.35/params/get.cgi?Services.TimeManagement-1.TimeServerDownAlarm)
    NTP="Services.TimeManagement-1.TimeServerDownAlarm=-"
     
    if [ $URL == $NTP ]; then
            echo "NTP OK"
            exit 0
    fi
    Quand je fais un echo sur mes variables j'ai bien les mêmes résultats.

    J'ai l'impression que ce que cUrl me retourne n'est pas reconnu comme une chaîne de caractère.

    Merci d'avance,

    John

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    Bonjour,

    deux choses d'abord :
    mets l'adresse du site entre guillemets, ça évitera que le shell interprète certains caractères spéciaux pour lui.
    mets les variables entre guillemets, pour éviter les erreurs de parsing, notamment dans les tests.

    ensuite, à tes yeux d'humains ça peut sembler être les mêmes chaînes, l'OS, lui, peut voir d'autres choses.
    que retournent et?

    enfin, il ne faut pas mettre les noms des variables tout en majuscules, car c'est réservé, par convention, aux variables d'environnements.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 24
    Par défaut
    Trouvé !

    Effectivement cUrl ne me retournait pas la chaîne de caractère que j'attendais.
    J'ai donc fais un test en envoyant le résultat de ma commande cUrl dans un fichier texte pour ensuite regarder le résultat de plus près.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -s -u LOG:MDP http://10.10.0.35/params/get.cgi?Services.TimeManagement-1.TimeServerDownAlarm > curl.txt
    J'affiche le contenu mon fichier en octal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [root@NOLA-VII1026 libexec]# od -c /home/RATP/x2015512/curl.txt
    0000000   S   e   r   v   i   c   e   s   .   T   i   m   e   M   a   n
    0000020   a   g   e   m   e   n   t   -   1   .   T   i   m   e   S   e
    0000040   r   v   e   r   D   o   w   n   A   l   a   r   m   =   -  \r
    0000060  \n
    0000061
    Et je le compare avec un fichier texte que j'ai édité moi-même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [root@NOLA-VII1026 libexec]# od -c /home/RATP/x2015512/john.txt
    0000000   S   e   r   v   i   c   e   s   .   T   i   m   e   M   a   n
    0000020   a   g   e   m   e   n   t   -   1   .   T   i   m   e   S   e
    0000040   r   v   e   r   D   o   w   n   A   l   a   r   m   =   -  \n
    0000060
    Je m'aperçois que c'est le \r qui fausse la comparaison.

    J'ai donc changé mon script en supprimant ce parasite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
     
    URL=$(curl -s -u LOG:MDP http://10.10.0.35/params/get.cgi?Services.TimeManagement-1.TimeServerDownAlarm 2>&1 | tr '\r' '\n')
    NTP="Services.TimeManagement-1.TimeServerDownAlarm=-"
     
    if [ $URL == $NTP ]; then
            echo "NTP OK"
            exit 0
    fi

    Je ne sais pas si c'est la meilleur solution mais ça fonctionne maintenant

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 24
    Par défaut
    Merci beaucoup pour ta réponse car effectivement c'était ça

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

Discussions similaires

  1. Output Debug String
    Par momotech_free dans le forum Windows
    Réponses: 3
    Dernier message: 26/01/2008, 19h26
  2. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 14h55
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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