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

  FORUM HardWare.fr
  Programmation

  Script Unix : variable imbriquée , HELP!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Unix : variable imbriquée , HELP!

n°103487
abethune
Posté le 22-02-2002 à 11:25:25  profilanswer
 

Bonjour,
voici en gros ce que j'aimerais faire:
var1=val1
var2=val2
var3=val3
 
for i in 1 2 3
do
   traitement sur ${var${i}}
done
 
${var${i}}, ca marche pas. Comment on fait? (je suis en bash)
merci d'avance.

mood
Publicité
Posté le 22-02-2002 à 11:25:25  profilanswer
 

n°103500
gfive
Posté le 22-02-2002 à 11:44:43  profilanswer
 

bah.....galère!!  
 
Mais si tu trouves, ça m'intéresse...
Essaie de voir si il n'y a pas moyen de créer des tableaux opu des listes (y'a pas de raison qu'on puisse pas.)
 
Mais la variable imbriquée, vu que c'est un langage de script, y'a pas moyen : y'a qu'une passe d'interprétation : donc, ${${toto}} il peut pas comp^rendre : il va interpreter les $intérieur, et se retrouver comme un con avec son 2° $....

n°103710
abethune
Posté le 22-02-2002 à 16:29:53  profilanswer
 

Personne n'a d'idée?
Une alternative?

n°104478
abethune
Posté le 25-02-2002 à 13:20:57  profilanswer
 

:bounce:

n°104485
jupiler
Un cousin...
Posté le 25-02-2002 à 13:39:19  profilanswer
 

avec expr ya pas moyen de s'en sortir?
 
par exemple:
 
var="\$var${i}"
 
valeur=`expr $var`
 
ou diectement : valeur=`expr "\$var${i}"`

 

[jfdsdjhfuetppo]--Message édité par jupiler--[/jfdsdjhfuetppo]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°104495
abethune
Posté le 25-02-2002 à 13:54:57  profilanswer
 

Ca a pas marché.
J'ai fait
VER_F021=v1.2
VER_F022=v1.4
etc...
 
for func in 021 022 023 etc...
do
   var="\$VER_F${func}"
   valeur=`expr $var`
   echo $valeur
done
 
on a var=$VER_F021
mais echo $valeur affiche $VER_F021.
Merci quand meme

n°104498
abethune
Posté le 25-02-2002 à 13:59:36  profilanswer
 

Il semble qu'avec eval, ca marche un peu mieux:
 
meme exemple:
 
for func in 021 022 023 etc...  
do  
  var="\$VER_F${func}"  
  valeur=`eval $var`  
  echo $valeur  
done  
 
il affiche (lorsqu'il execute la ligne valeur=`eval $var`) v1.2 not found. Il a donc reussi a trouver la valeur. Cependant, il n'a pas affecté le resultat a valeur. donc le dernier echo n'affiche rien.  
Encore un peu d'aide SVP, on n'y est presque.
Merci d'avance.

n°104499
jupiler
Un cousin...
Posté le 25-02-2002 à 13:59:41  profilanswer
 

essaye valeur=`expr "$var"`
 
pour forcer l'interprétation de $var
 
ou éventuellement avec des simples quotes
 
ou essaye avec eval à la place de expr : eval "$var"

 

[jfdsdjhfuetppo]--Message édité par jupiler--[/jfdsdjhfuetppo]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°104504
abethune
Posté le 25-02-2002 à 14:12:27  profilanswer
 

on dirait qu'il essaie de trouver une variable du nom "v1.2" avec eval

n°104509
jupiler
Un cousin...
Posté le 25-02-2002 à 14:16:42  profilanswer
 

si tu mets direct : eval "\$VER_F${func}" , avec ou sans les doubles quotes, ca donne quoi ?

 

[jfdsdjhfuetppo]--Message édité par jupiler--[/jfdsdjhfuetppo]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
mood
Publicité
Posté le 25-02-2002 à 14:16:42  profilanswer
 

n°104516
abethune
Posté le 25-02-2002 à 14:33:10  profilanswer
 

meme resultat

n°104519
jupiler
Un cousin...
Posté le 25-02-2002 à 14:35:55  profilanswer
 

j'ai trouvé ca par Google:
 
http://www.multimania.com/bombjack [...] comm_e.htm
 

Citation :

Normalement une ligne de saisie n'est éxécutée qu'une seule fois. Mais si une variable contient le nom d'une autre variable, une exploitation unique ne suffit pas. Pour voir le contenu de la seconde variable, il faut éxécuter une deuxième fois cette ligne.
 
Les caractères spéciaux qui ne sont à exploiter qu'une fois doivent éventuellement être masqués. Une utilisation répétée d'eval est possible.
 


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°104522
jupiler
Un cousin...
Posté le 25-02-2002 à 14:37:09  profilanswer
 

et ca pas mal aussi :
 
http://www.irit.fr/ACTIVITES/EQ_TC [...] /td15.html


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°104523
jupiler
Un cousin...
Posté le 25-02-2002 à 14:37:53  profilanswer
 

avec l'exemple qui va bien ::
 
 
a=1
c=a
a1=3
eval b=\$$c$a
echo $b
 
 
ca devrait te convenir

 

[jfdsdjhfuetppo]--Message édité par jupiler--[/jfdsdjhfuetppo]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°104543
abethune
Posté le 25-02-2002 à 15:03:13  profilanswer
 

___   __     __   °
|\  /|  |     |  \   /     |
| \/ |  |---  |__/  |      |
|    |  |___  |  \   \__   |

n°104544
abethune
Posté le 25-02-2002 à 15:04:26  profilanswer
 

Ca aurait du ressembler a un "merci"

n°104545
jupiler
Un cousin...
Posté le 25-02-2002 à 15:06:41  profilanswer
 

il t'a fallut 26 minutes pour dessiner ca ? :lol:


---------------
Je ne suis ni pour, ni contre, bien au contraire  

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Script Unix : variable imbriquée , HELP!

 

Sujets relatifs
mettre une variable dans une requete sql sous access[COMMANDE SOUS UNIX]Please aidez moi !!!
Développement Web sur iPAQ, help !!! please !!![SQL] Help requête tordue
[javascript] Passer le nom d'un formulaire en variablePgp : pb de variable et de fonction
pb de variable globale en visual basicpb de linkage en C++ sous visual ki marche sous mandrake HELP !!!
[VB6] Help pb de date dans les requêtes sql!!! 
Plus de sujets relatifs à : Script Unix : variable imbriquée , HELP!


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