Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1438 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Problème de syntaxe avec les variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de syntaxe avec les variables

n°1067950
redvivi
Posté le 19-08-2008 à 17:20:32  profilanswer
 

Hello (ça faisait longtemps!) !
 
 
Pour changer, j'ai un souci en shell, voici un bout de code pour montrer le problème:

Code :
  1. RUE1=foo
  2. RUE2=bar
  3. NBRUE=1
  4. RUE=`echo $RUE$NBRUE`


 
Le problème est que la variable RUE ne contient que "1" au lieu de "foo"
 
J'ai essayé plusieurs syntaxes, mais je tourne en rond, qu'est-ce que j'ai loupé ?
 
Merci à tous !
RedVivi
 

mood
Publicité
Posté le 19-08-2008 à 17:20:32  profilanswer
 

n°1067952
Fork Bomb
Obsédé textuel
Posté le 19-08-2008 à 17:31:30  profilanswer
 

Il manquait "1", justement.
 
Version propre :
#!/bin/sh
RUE1="foo"
RUE2="bar"
NBRUE="1"
 
RUE="${RUE1} ${NBRUE}"
echo ${RUE}


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1067955
redvivi
Posté le 19-08-2008 à 17:36:08  profilanswer
 

Merci mais ça ne fonctionne pas chez moi, la variable prend la valeur "1" mais pas de foo, ni de bar

n°1067960
Fork Bomb
Obsédé textuel
Posté le 19-08-2008 à 17:49:54  profilanswer
 

redvivi a écrit :

Merci mais ça ne fonctionne pas chez moi, la variable prend la valeur "1" mais pas de foo, ni de bar


RUE="${RUE1} ${RUE2} ${NBRUE}"


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1067962
redvivi
Posté le 19-08-2008 à 17:58:25  profilanswer
 

Oops ! Pardonne moi, j'ai compris, je me suis mal exprimé...en fait ce n'est pas tout à fait ce que je veux comme résultat par exemple c'est que la variable RUE contienne "foo" si NBRUE a la valeur 1 (RUE aura pris la valeur de RUE1), et que si je change NBRUE a la valeur 2, je voudrais que RUE contienne "bar" (RUE aura pris la valeur de RUE2)

n°1067964
zeblods
Posté le 19-08-2008 à 18:07:35  profilanswer
 

redvivi a écrit :

Oops ! Pardonne moi, j'ai compris, je me suis mal exprimé...en fait ce n'est pas tout à fait ce que je veux comme résultat par exemple c'est que la variable RUE contienne "foo" si NBRUE a la valeur 1 (RUE aura pris la valeur de RUE1), et que si je change NBRUE a la valeur 2, je voudrais que RUE contienne "bar" (RUE aura pris la valeur de RUE2)


T'as déjà codé dans ta vie ?! Par ce que au vue de tes différents post... Tu dis que c'est pour un projet pro, mais vue ton niveau je me demande bien quelle entreprise embauche une personne pour un job dont il ne connais quasiment rien...

 

Pour faire ça, comme dans TOUS les langages de programmation, tu fais un tableau !

mon_tableau[index]=variable # instanciation
${mon_tableau[index]} # appel d'un élément
${mon_tableau[*]} # appel de l'ensemble du tableau


Message édité par zeblods le 19-08-2008 à 18:15:03
n°1067968
redvivi
Posté le 19-08-2008 à 18:15:04  profilanswer
 

(....)
Ya vraiment des jours où se sent bête, à vrai dire je n'ai jamais utilisé de tableau en shell, je n'ai pas eu le réflexe, c'est moche....Enfin bon, ce soucis là est résolu, par contre j'en ai un autre (pas aussi bete je pense)

Code :
  1. i=0
  2. while read lig 0<&3
  3. do
  4. i=`expr $i "+" 1`
  5. RUE$i=`echo $lig`


 
me donne par exemple: R

Code :
  1. UE2=foo&;bar: Aucun fichier ou répertoire de ce type


 
J'ai essayé d'échapper les caracteres mais sans succès, je suis quasiment sur que c'est RUE$i qui n'est pas considérée comme une variable

Message cité 1 fois
Message édité par redvivi le 19-08-2008 à 18:15:29
n°1067970
zeblods
Posté le 19-08-2008 à 18:17:18  profilanswer
 

redvivi a écrit :

(....)
Ya vraiment des jours où se sent bête, à vrai dire je n'ai jamais utilisé de tableau en shell, je n'ai pas eu le réflexe, c'est moche....Enfin bon, ce soucis là est résolu, par contre j'en ai un autre (pas aussi bete je pense)

Code :
  1. i=0
  2. while read lig 0<&3
  3. do
  4. i=`expr $i "+" 1`
  5. RUE$i=`echo $lig`
 

me donne par exemple: R

Code :
  1. UE2=foo&;bar: Aucun fichier ou répertoire de ce type
 

J'ai essayé d'échapper les caracteres mais sans succès, je suis quasiment sur que c'est RUE$i qui n'est pas considérée comme une variable


Utilise un tableau... L'exemple est 2 post avant...


Message édité par zeblods le 19-08-2008 à 18:17:37
n°1067971
redvivi
Posté le 19-08-2008 à 18:26:01  profilanswer
 

Bon, résultat: ça fonctionne et j'ai un post-it sur mon écran me rappelant l'importance des tableaux....
 
Merci !

n°1068133
redvivi
Posté le 20-08-2008 à 13:53:43  profilanswer
 

Cette fois-ci, je suis sur que ce n'est pas un problème de tableau, mais j'ai du mal avec une variable (je n'ai pas de chance) ! Voici la déclaration:

 
Code :
  1. HEADERS="-H 'Accept: text/xml' \
  2. -H 'Accept:Encoding: gzip'"
 

et si j'exécute:

 
Code :
  1. curl $HEADERS foo.com
 

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


Message édité par redvivi le 20-08-2008 à 13:54:33
mood
Publicité
Posté le 20-08-2008 à 13:53:43  profilanswer
 

n°1068406
redvivi
Posté le 21-08-2008 à 19:41:13  profilanswer
 

Je poste ici le résultat de mes recherches sur cette f**** variable qui ne veut pas passer:
 

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


 
Est-ce que vous avez une idée :??: (à défaut d'avoir du pétrole)  :D  !?


Message édité par redvivi le 21-08-2008 à 19:48:51
n°1068971
twocats
Posté le 25-08-2008 à 00:54:27  profilanswer
 

Citation :

#!/bin/bash
 
HEADERS="-H 'Accept: text/xml' -H 'Accept:Encoding: gzip'"
 
curl "${HEADERS}" google.fr


 
pfff...


---------------
La réponse est 42
n°1069225
redvivi
Posté le 26-08-2008 à 00:01:52  profilanswer
 

Cependant si tu utilises des variables dans les Headers ça ne fonctionne pas non plus...:-(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Problème de syntaxe avec les variables

 

Sujets relatifs
Probleme tache cron avec SuxProbleme d'installation d'amule.
Problème avec wineprobleme de reconnaissance de mon appareil photo sur kubu
probleme de mise en veille!module-assistant : problème avec mon nouveau noyau
Problème d'accès à mon cluster heartbeat-2 avec hb_guiProbleme de son manquant
Xubuntu pose problèmeProbleme peripherique usb
Plus de sujets relatifs à : Problème de syntaxe avec les variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR