nom de variable dans un nom de variable - Shell/Batch - Programmation
Marsh Posté le 01-08-2012 à 20:38:15
Je pense que cela pourrait t'aider :
var=val --> affectation de la variable "var"
$var ou ${var} --> contenu de la variable "var"
Exemple :
#!/bin/sh
VAR="variable"
variable=toto
echo $VAR # => variable
echo ${!VAR} # => toto
Marsh Posté le 01-08-2012 à 21:13:31
salut,
oui j'avais déjà lu ce genre de chose mais je ne comprends pas comment je pourrais l'utiliser pour mon problème qui me semble un peu différent de ton exemple.
Entretemps, on m'a soufflé la solution suivante :
Code :
|
mais pour moi c'est complètement cryptique malheureusement, je ne comprends pas vraiment ce que fait le eval.
Marsh Posté le 02-08-2012 à 03:06:21
salut,
oulala, non, n'utilise pas eval (c'est une bombe à retardement : un jour ça pourrait évaluer un rm -rf; donc, vaut mieux éviter)
bash met à notre disposition des tableaux
Code :
|
à quoi ça doit servir ?
si index n'est pas forcément un nombre, bash a aussi des tableaux associatifs.
Marsh Posté le 03-08-2012 à 17:37:52
salut,
en fait c'est un petit script qui va chercher des valeurs en SNMP en boucle et fait un calcul :
Code :
|
cette version avec eval fonctionne (j'ai maintenant compris comment ça marche), je vais voir ce que je peux faire en remplaçant par des tableaux.
Marsh Posté le 01-08-2012 à 18:59:49
Bonjour, je cherche à faire (en bash) des variables avec un nom dynamique (nom généré à partir d'une autre variable).
Exemple :
résultat :
bash: cell_1=3 : commande introuvable
alors que je m'attendais à ce qu'il crée bêtement une variable cell_1 et lui attribue la valeur 3. D'ailleurs si je fais directement :
il m'affiche bien 3. Alors quelle différence bash fait-il entre les deux et comment faire ? merci.
---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h