=5bbash=5d r=c3=a8gle d'expansion dynamique =3f

4 réponses
Avatar
pehache
Bonjour,

dans un script bash j'aurais besoin d'appliquer une règle d'expansion
définie dynamiquement dans le script, un truc dans le genre (la syntaxe
ne fonctionne pas, mais c'est pour fixer les idées) :

rule="//aa/bb"
echo ${parameter${rule}}

Est-ce possible de le faire ? Je tourne ça dans tous les sens mais je
tourne surtout en rond... J'ai essayé avec les indirections (${!...})
sans arriver à rien non plus.


--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine

4 réponses

Avatar
Nicolas George
pehache , dans le message , a écrit :
dans un script bash j'aurais besoin d'appliquer une règle d'expansion
définie dynamiquement dans le script, un truc dans le genre (la syntaxe
ne fonctionne pas, mais c'est pour fixer les idées) :
rule="//aa/bb"
echo ${parameter${rule}}
Est-ce possible de le faire ? Je tourne ça dans tous les sens mais je
tourne surtout en rond... J'ai essayé avec les indirections (${!...})
sans arriver à rien non plus.

Tu as toujours la solution à base d'eval. Moche, mais on peut tout
faire.
Avatar
Nicolas George
pehache , dans le message , a écrit :
eval newvar='${var'${rule}'}'

Ça marche, mais je trouve que ceci pourrait être plus lisible :
eval "newvar=${var$rule}"
Avatar
pehache
Le 08/02/2019 à 11:55, Nicolas George a écrit :
pehache , dans le message , a écrit :
eval newvar='${var'${rule}'}'

Ça marche, mais je trouve que ceci pourrait être plus lisible :
eval "newvar=${var$rule}"

Oui. Les doubles quotes ici ne sont pas utiles apparemment ?
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
Nicolas George
pehache , dans le message , a écrit :
Oui. Les doubles quotes ici ne sont pas utiles apparemment ?

Effectivement, mais à titre personnel je préfère.