Evaluation variable & index

Résolu/Fermé
yinkoh - 17 juin 2008 à 15:33
 yinkoh - 17 juin 2008 à 18:44
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.

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 juin 2008 à 17:49
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 juin 2008 à 18:41
result=$(eval echo \$$msg)
echo $result
0
un qui sait c'est toujours mieux qu'un qui cherche.

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