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

Linux Discussion :

Problème d'utilisation de variable shell dans une commande


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut Problème d'utilisation de variable shell dans une commande
    Bonjour à tous !

    J'ai un problème avec une variable shell (je n'ai pas de chance) ! Voici la déclaration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HEADERS="-H 'Accept: text/xml' \
    -H 'Accept:Encoding: gzip'"
    et si j'exécute:

    Il considère $HEADERS comme une URL également, j'ai essayé d'échapper les caractères, de changer les single quotes par des doube quotes mais ça n'a rien changé.

    Comment faire dans ce cas là ?

    Merci d'avance !
    RedVivi

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    curl "$HEADERS" foo.com
    as-tu testé ainsi?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Oui mais ça ne fonctionne pas non plus....c'est le drame

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    On est bien d'accord que la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -H 'Accept: text/xml' -H 'Accept:Encoding: gzip' foo.com
    fonctionne ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Oui pas de souci

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Et si t'essayais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    h1="Accept: text/xml"
    h2="Encoding: gzip"
    curl -H "$h1" -H "$h2" foo.com
    ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Ha oui ça marche !! bien!! Bizarre tout de même...en tout cas merci !

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par redvivi Voir le message
    Bizarre tout de même...
    Je pense que le shell n'arrive pas à passer d'option (comme "-H") à une commande quand c'est dans une variable.
    Je vérifiera ça demain mais tu peux déjà essayer ça
    et voir si t'obtiens bien le résultat "ls -l"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Ha ha ha ! Moi je dis j'ai découvert un bug dans le shell...




  10. #10
    Invité
    Invité(e)
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [mvts2 ~]# curl -H 'Accept: text/xml' -H 'Accept:Encoding: gzip' google.fr
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [mvts2 ~]# HEADERS="-H 'Accept: text/xml' -H 'Accept:Encoding: gzip'"
    [mvts2 ~]# curl $HEADERS google.fr
    curl: (6) Couldn't resolve host 'text'
    curl: (6) Couldn't resolve host 'gzip''
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [ mvts2 ~]# HEADERS="-H 'Accept:text/xml' -H 'Accept:Encoding:gzip'"
    [mvts2 ~]# curl $HEADERS google.fr
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>

    Conclusion, il faut retirer l'espace que tu as entre : et gzip ainsi que : et text

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Finalement après investigation la solution précédente (avec les variables séparées) ne peut pas me convenir car j'ai beaucoup de Headers à transmettre (en plus, je n'ai pas tout le temps le même nombre de Headers, donc prise de tete). La solution en enlevant les espaces fonctionne, mais le problème c'est que j'ai besoin de ses espaces, j'ai essayé de les échapper mais sans succès, voilà ou j'en suis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    ~ user$ HEADERS="-H 'Accept:text/xml' -H 'Accept:Encoding:gzip'"
    ~ user$ curl $HEADERS google.fr
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>
    ~ user$ HEADERS="-H 'Accept: text/xml' -H 'Accept:Encoding: gzip'"
    ~ user$ curl $HEADERS google.fr
    curl: (6) Couldn't resolve host 'text'
    curl: (6) Couldn't resolve host 'gzip''
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>
    ~ user$ HEADERS="-H 'Accept:\ text/xml' -H 'Accept:Encoding:\ gzip'"
    ~ user$ curl $HEADERS google.fr
    curl: (6) Couldn't resolve host 'text'
    curl: (6) Couldn't resolve host 'gzip''
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>
    ~ user$ HEADERS="-H "Accept:\ text/xml" -H "Accept:Encoding:\ gzip""
    ~ user$ curl $HEADERS google.fr
    curl: (6) Couldn't resolve host 'text'
    curl: (6) Couldn't resolve host 'gzip'
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>
    ~ user$ HEADERS="-H \"Accept: text/xml\" -H \"Accept:Encoding: gzip\""
    ~ user$ curl $HEADERS google.fr
    curl: (6) Couldn't resolve host 'text'
    curl: (6) Couldn't resolve host 'gzip"'
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/">here</A>.
    </BODY></HTML>

  12. #12
    Invité
    Invité(e)
    Par défaut
    Pourquoi tu as besoin de ces espaces?

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Pourquoi tu as besoin de ces espaces?
    Car Les browsers transmettent les Headers avec ces espaces

  14. #14
    Invité
    Invité(e)
    Par défaut
    mmmh.

    pourquoi utilises-tu curl dans ce cas?

  15. #15
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Car j'ai besoin que de ces 2 Headers (test d'un serveur web local), les autres je m'en fiche et n'en veut pas non plus (sinon j'aurai utilisé Lynx depuis longtemps). De toute manière le problème ne se situe pas au niveau du choix de l'outil, mais d'une f****** variable qui ne veut pas passer et c'est vraiment un mystere

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bon je résume,

    tu fais un test avec curl et ses headers passé a une variables en shell pour faire un test sur un serveur web local.

    Il y a vraiment quelque chose qui m'échappe...

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Bon je résume,

    tu fais un test avec curl et ses headers passé a une variables en shell pour faire un test sur un serveur web local.

    Il y a vraiment quelque chose qui m'échappe...
    Il s'agit d'une série de test que je veux soumettre à un serveur web (qui est local), qui n'aura pas le même comportement en fonction de ces Headers. Le projet est assez compliqué à expliquer....et puis comme c'est un ordre du patron.....

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Je commence à me demander si il y a vraiment une solution à mon problème

  19. #19
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    je dis ptre une connerie mais tu as pensé à wget?
    La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre.
    Donald E. Knuth

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par KindPlayer Voir le message
    je dis ptre une connerie mais tu as pensé à wget?
    J'ai besoin du HTTP/1.1

    Mais je ne pense pas que changer de logiciel soit une solution, il faut juste trouver une méthode pour faire passer les Headers en paramètres de curl

Discussions similaires

  1. Utilisation de variable PHP dans une fonction JavaScript
    Par microJaP dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2009, 23h52
  2. Utilisation de variables SQL dans une requête
    Par charliend dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 24/03/2009, 17h54
  3. Utiliser des variables applications dans une classe
    Par soso78 dans le forum VB.NET
    Réponses: 1
    Dernier message: 13/10/2008, 22h21
  4. Utilisation de variable Builder dans une requete SQL
    Par _ben_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/06/2007, 11h36
  5. Réponses: 1
    Dernier message: 27/07/2005, 17h08

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