cerhu > comp.os.* > comp.os.linux.configuration

pehache (08/02/2019, 00h05)
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.
Nicolas George (08/02/2019, 01h58)
pehache , dans le message <gc3odvFfbd5U1>, 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.
pehache (08/02/2019, 10h17)
Le 08/02/2019 à 00:58, Nicolas George a écrit :
> pehache , dans le message <gc3odvFfbd5U1>, a écrit :
> Tu as toujours la solution à base d'eval. Moche, mais on peut tout
> faire.


J'avais essayé, mais je tournais en rond aussi... Mais du coup je m'y
suis remis et j'ai fini par tomber sur la bonne formule, plus par
essais-erreurs qu'autre chose :

var=abcde
rule=//ab/AB
echo '${var'${rule}'}'

--> ${var//a/b}

eval newvar='${var'${rule}'}'
echo $newvar

--> ABcde

Merci
Nicolas George (08/02/2019, 12h55)
pehache , dans le message <gc4s8tFmkvcU1>, a écrit :
> eval newvar='${var'${rule}'}'


Ça marche, mais je trouve que ceci pourrait être plus lisible :

eval "newvar=\${var$rule}"
pehache (08/02/2019, 21h03)
Le 08/02/2019 à 11:55, Nicolas George a écrit :
> pehache , dans le message <gc4s8tFmkvcU1>, 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 ?
Nicolas George (09/02/2019, 11h59)
pehache , dans le message <gc623bFa84U1>, a écrit :
> Oui. Les doubles quotes ici ne sont pas utiles apparemment ?


Effectivement, mais à titre personnel je préfère.
Discussions similaires
bash : combiner %% et / dans une expansion

[bash] expansion de variable avec double quote

Expansion de variable en bash

[BASH] variable dynamique


Fuseau horaire GMT +2. Il est actuellement 12h01. | Privacy Policy