Evaluation variable & index

Résolu
yinkoh -  
 yinkoh -
Bonjour,

Je sollicite de l'aide car google n'a pas réussi à m'aider et je sature un peu en fait

Voici le problème:

msg_1=toto
msg_2=tata

function msg {
echo "msg_$1"
}

msg 1
exit

Je souhaite juste afficher le bon message, en saisissant echo ${msg_1} cela fonctionne mais je perds le coté utile de la fonction.

Quel est le bon format d'écriture pour accomplir ce que je recherche svp.

D'avance merci.
Configuration: Windows XP
Firefox 2.0.0.12

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    [jp@MDK-2008 trash]$ cat bar.sh
    #! /bin/bash
    
    msg_1=toto
    msg_2=tata
    
    function msg {
    eval  "msg=\"msg_$1\""
    eval echo \$$msg
    }
    
    msg $1
    exit
    
    [jp@MDK-2008 trash]$ ./bar.sh 1
    toto
    [jp@MDK-2008 trash]$ ./bar.sh 2
    tata
    [jp@MDK-2008 trash]$
    ;-))
    0
  2. yinkoh
     
    Re

    Deja merci car effectivement cela fonctionne, cependant j'ai un leger soucis.

    J'aurai besoin de stocker le résultat du dernier eval, est-ce possible ?

    merci
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    result=$(eval echo \$$msg)
    echo $result
    0
  4. yinkoh
     
    un qui sait c'est toujours mieux qu'un qui cherche.

    merci bien j'ai cherché mais sans résultat et la, pouf ! :)
    0