Forum Programmation.shell variable imbriquée

Posté par  .
Étiquettes : aucune
0
31
mai
2006
'soir
admettons que j'ai une variable nommée "P1"
pour l'afficher je fait
echo $P1

mais si j'en ai plusieurs genre P1 P2 P3....
et que je défini "i" comme étant le chiffre, en l'incrémentant, comment je note la variable
genre ${P$1} (je dis "genre" pasque ça marche pas)
pour qu'il comprenne qu'il doit afficher une variable commencant par "P" suivie d'un nombre "i" ?
merci
  • # une solution...

    Posté par  . Évalué à 1.

    P1="aaa"; P2="bbb"; i=1; eval "echo \$P$i"; ((i++)); eval "echo \$P$i";
  • # Avec bash...

    Posté par  . Évalué à 1.


    varname=P$i
    echo ${!varname}


    la syntaxe ${!varname} effectue une substitution par la variable désignée par la valeur de varname...
  • # Et des tableaux ?

    Posté par  . Évalué à 2.

    Peut-être qu'utiliser explicitement une variable de type tableau serait plus propre ?..

    Dans les version raisonnablement récentes de bash il y a le support des tableaux, avec la syntaxe suivante pour l'affectation individuelle des éléments:
    toto[1]=valeur
    toto[20]=autre_valeur

    et ${toto[20]} pour la lecture.

    Ça ne marche pas sur un bash -version 1.x, ça marche sur un bash version 3.x, je ne sais pas entre le deux.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.