echo de la valeur à l'intérieur d'une variable?
x=102 y=x
signifie quand j'ai echo $y il donne x
echo $y
x --et non 102
et quand j'ai echo $x, il donne 102
permet de dire que je dnt savoir ce qui est à l'intérieur de y
et je veux la valeur de x pour être en écho avec l'aide de y un truc comme ça
a=`echo $(echo $y)`
echo $a
Sna 102
- Si vous utilisez
bash
, puisecho ${!y}
. - cela a fonctionné pour moi echo $(($y))
- qui fonctionne si x est un nombre, parce que
$(( ))
est l'expansion arithmétique. Il va donner à 0 si x est un chaîne de caractères arbitraire. - c'est une fonctionnalité intéressante. Savez-vous ce que bash appels de fonction donc je pouvez en lire plus à ce sujet?
- Samuel Klatchko: "indirection"
- comment faire lorsque x contient une chaîne de caractères....
- ok il a travaillé pour la chaîne $ eval echo \$$y
- Il serait génial si vous pouviez la peine d'utiliser des phrases complètes, et peut-être l'utiliser même le plus superficiel de mise en forme.
Vous devez vous connecter pour publier un commentaire.
Vous devez dire à la coque afin d'évaluer votre commande à deux reprises: une fois pour mettre le $y dans x, et à nouveau pour obtenir la valeur de x$. La plupart des appareils portables de façon à ce que je sais faire c'est avec eval:
(Vous devez vous échapper de la première tranche de l'eval ligne parce que sinon, à la première évaluation de remplacer "$$" avec les pid)
Si vous n'êtes intéressé avec bash, KennyTM de la méthode est probablement le meilleur.
En ksh 93 (je ne sais pas si cela fonctionne en ksh 88):
Point de prêter à confusion, les deux dernières commandes à faire le contraire de ce qu'ils font dans Bash (qui n'a pas besoin de marquer la variable à l'aide
typeset
).