Votre question

un peu compliquer : valeur de variable servant comme nom de variable.

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
19 Janvier 2005 20:21:36

bonjour,
ben ce que je veut est impeu compliquer à dire : c'est pour un script shell->linux.
dans un scrip (par ex mon_script).
j'ai une variable par ex: var_temp
on a un moment (par ex), var_temp=1
lorsque j'appelle mon script
j'entre la ligne de commande mon_script var1 var2.
ben la je veux affichier la variable 1 (var1)
non pas en faisant "echo $1".
mais echo $+"$var_temp". je ne sais pas comment le dire mais en fait je veux concatainer '$' avec la valeur de '$var_temp' pour donner un équivalent a '$1' (car '$var_temp'=1)
voila je ne sais pas si vous avez compri mais a mon avis ceux qui ont la réponse vont comprendre ;-)
voila merci

Autres pages sur : compliquer valeur variable servant nom variable

19 Janvier 2005 20:38:27

c'est possible en php, mais avec {a, ba, c, k, z}sh je crois pas ... en tout cas, rien trouvé de tel sur le grand ternet ...
20 Janvier 2005 00:42:05

C'est des variables dynamiques je crois!
En php,
$var1 = 'salut';
$$var1 = 'toi';

echo "$var1 $$var1" revient à echo "$var1 $salut";
donc affiche // salut toi
ca s'ecrit ${$var1} aussi!

Donc bon, si c'est ca que tu cherche, c'est sur les variables dynamiques qu'il faut chercher de la doc!
Et en bash, j'ai jamais vu!
21 Janvier 2005 15:29:45

excuse moi mais dans unscript shell lorsque l'on essai $$var1, on a une erreur. (C'est sous linux). De plus ce n'est pas exactement ça que je veut.
je voudrai fait un echo de la variable $1 ou $2 ou $3 en fonction de la valeur de $var1.
si $var1 = 1 => echo $1.
si $var1 = 2 => echo $2.
si $var1 = 3 => echo $3.
voila, mais je voudrai savoir si il n'y a pas un équivalent a ce que je vient d'écrir sur une seul ligne.
car si je prend la valeur de var1 (1, 2 ou3) que je concatène (colle) avec "$", j'obtient $1, $2 ou $3.
en fait je précalule la valeur de $var1 pour l'ajouter dans le programme. (dit comme ça, il me semble que c'est pas possible mais je suis présque certain d'avoir déja vu ça.
23 Janvier 2005 16:56:14

ca existe pas les switch en bash?
23 Janvier 2005 17:00:15

Citation :

habibdu70 a écrit :
excuse moi mais dans unscript shell lorsque l'on essai $$var1, on a une erreur. (C'est sous linux). De plus ce n'est pas exactement ça que je veut.
je voudrai fait un echo de la variable $1 ou $2 ou $3 en fonction de la valeur de $var1.
si $var1 = 1 => echo $1.
si $var1 = 2 => echo $2.
si $var1 = 3 => echo $3.
voila, mais je voudrai savoir si il n'y a pas un équivalent a ce que je vient d'écrir sur une seul ligne.
car si je prend la valeur de var1 (1, 2 ou3) que je concatène (colle) avec "$", j'obtient $1, $2 ou $3.
en fait je précalule la valeur de $var1 pour l'ajouter dans le programme. (dit comme ça, il me semble que c'est pas possible mais je suis présque certain d'avoir déja vu ça.


c'est bien ce qu'on te dis, et ça semble pas possible en bash.

les switch, en bash, il me semble que ça existe.
23 Janvier 2005 23:38:01

* #!/usr/bin/bash
* # Script : choix.sh
*
* PS3="Que voulez vous ? "
* select choix in \
* "Premier choix" \
* "Second choix" \
* "Abandon"
* do
* case $REPLY in
* 1) echo "C'est du premier choix :" ;;
* 2) echo "Ce n'est que du second choix !" ;;
* 3) echo "On abandonne ..."
* break ;;
* *) echo "Choix invalide" ;;
* esac
* done


un exemple de script bash, avec un switch!
24 Janvier 2005 14:10:12

super merci Mr_Keyser
moi je suis un "pro" "programme le plus court possible"
et je pense que le case est la meilleur solution
merci.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS