Salut tout le monde,
une question tout cours:
Quelle est la signification de cette formule ${!var}
j'ai beau cherché sur internet j'ai pas trouvé
merci
Salut tout le monde,
une question tout cours:
Quelle est la signification de cette formule ${!var}
j'ai beau cherché sur internet j'ai pas trouvé
merci
Bonsoir,
Pas besoin d'aller chercher l'info si loin! Elle existe sur tout ordinateur tournant Linux: man bash, puis /\${! donne la solution. En fait, il s'agit d'indirection. Exemple:
Compréhensible?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 a=b b=10 echo ${!a} 10
Oui c'est très clair
Merci chef de ta réponse.
Bizarre, mon man bash ne parle pas de ${!var} mais seulement de ${!prefix*} et ${!prefix@}. jmelyn, pour ma culture, pourrais-tu coller ici le passe de ton man qui parle de ça ?
Voici ce que me dit le man de Bash (4e paragraphe de "Parameter Expansion")...
Par chez nous on dirait à peu près...If the first character of parameter is an exclamation point, a level of variable indirection is introduced. Bash uses the value of the variable formed from the rest of parameter as the name of the variable; this variable is then expanded and that value is used in the rest of the substitution, rather than the value of parameter itself. This is known as indirect expansion. The exceptions to this are the expansions of ${!prefix*} and ${!name[@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection.
Si le premier caractère est un point d'exclamation, un niveau d'indirection de la variable est introduit. Bash utilise la valeur de la variable formée à partir du reste du paramètre comme le nom de la variable, cette variable est alors "étendue" et sa valeur est utilisée dans le reste de la substitution, plutôt que la valeur du paramètre lui-même. Ceci est appelé "expansion indirecte". Les exceptions sont ${!prefix*} et ${!name[@]} décrites plus loin. Pour introduire l'indirection, le point d'exclamation doit suivre immediatement l'accolade ouvrante.
Merci, en fait j'ai bien ça dans mon man mais comme je cherchais ${! j'étais passé à côté.
Partager